UNPKG

webdash-readme-preview

Version:
127 lines (106 loc) 3.45 kB
<!doctype html> <!-- @license Copyright (c) 2015 The Polymer Project Authors. All rights reserved. This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as part of the polymer project is also subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt --> <html> <head> <title>iron-query-params</title> <script src="../../webcomponentsjs/webcomponents-lite.js"></script> <link rel="import" href="../iron-query-params.html"> <link rel="import" href="../../iron-flex-layout/iron-flex-layout-classes.html"> </head> <body> <dom-module id='iron-query-params-demo'> <template> <style include="iron-flex"> div.inputs { margin-bottom: 15px; } label { display: inline-block; width: 100px; } h3 { padding: 0; margin: 0; } </style> <iron-query-params id="queryParams" params-string='{{paramString}}' params-object='{{params}}'> </iron-query-params> <div class="layout horizontal"> <div class="layout vertical flex" class='inputs'> <div>Params as string:</div> <input value="{{paramString::input}}"> <div>Params as object</div> <template is="dom-if" if="{{paramsInvalid}}"> <div>INVALID PARAMS: Should be legal JSON</div> </template> <input value="{{stringifiedParams::input}}"> </div> </div> </template> <script> window.addEventListener('WebComponentsReady', function() { Polymer({ is: 'iron-query-params-demo', properties: { params: { observer: 'paramsChanged' }, paramsInvalid: { value: false, }, paramString: { type: String, observer: 'paramStringChanged' }, stringifiedParams: { type: String, observer: 'stringifedParamsChanged' } }, paramStringChanged: function() { if (this.ignore) { return; } this.ignore = true; try { this.paramsInvalid = false; } catch(_) { this.paramsInvalid = true; } this.ignore = false; }, stringifedParamsChanged: function() { if (this.ignore) { return; } this.ignore = true; try { var newParamsObject = JSON.parse(this.stringifiedParams); this.$.queryParams.paramsObject = newParamsObject; this.paramsInvalid = false; } catch (e) { this.paramsInvalid = true; } this.ignore = false; }, paramsChanged: function() { if (this.ignore) { return; } this.ignore = true; this.stringifiedParams = JSON.stringify(this.params); this.paramsInvalid = false; this.ignore = false; } }); }); </script> </dom-module> <iron-query-params-demo></iron-query-params-demo> </body> </html>