javascript - Reset values within dom-repeat -


i'm using dom-repeat in polymer. corresponding list includes initial value should set whenever list of dom-repeat reset. however, when first element of list keeps same initial value, value not reset though empty list before resetting new value. here's minimum example:

<dom-module id="console-app">   <template>     <div id="command-selection">       <paper-dropdown-menu id="command" label="function">         <paper-listbox slot="dropdown-content" selected="{{_commandindex}}">           <paper-item>a</paper-item>           <paper-item>b</paper-item>         </paper-listbox>       </paper-dropdown-menu>     </div>      <div id="parameters">       <template is="dom-repeat" items="[[_parameterdata]]">         <parameter-block name="[[item.name]]" initial-value="[[item.initialvalue]]" ></parameter-block>       </template>     </div>   </template>    <script>       class consoleapp extends polymer.element {            static is() {               return 'console-app';           }              static properties() {               return {                   _commandindex: {                       type: number,                       value: -1,                       observer: '_onindexchange'                   },                    _parameterdata: {                       type: array,                       value: () => { return []; }                   }               };           }            _onindexchange() {               this.set('_parameterdata', []);                switch (this._commandindex) {                   case 0:                       this.set('_parameterdata', [                           { name: 'aaa', initialvalue: '111'},                           { name: 'bbb', initialvalue: '123'}                       ]);                       break;                    case 1:                       this.set('_parameterdata', [                           { name: 'ccc', initialvalue: '112'}                       ]);                       break;                }           }       }        customelements.define(consoleapp.is, consoleapp);   </script> </dom-module> 

parameter-block:

<dom-module id="parameter-block">   <template>     <paper-input id="non-bool-value" label="[[name]]"                  value="{{_value}}"></paper-input>   </template>    <script>       class parameterblock extends polymer.element {            static is() {               return 'parameter-block';           }              static properties() {               return {                   _value: {                       type: string,                       value: () => { return ''; }                   },                    initialvalue: {                       type: string,                       value: () => { return ''; },                       observer: '_oninitialvaluechange'                   },                    name: {                       type: string,                       value: () => { return ''; }                   }               };           }              _oninitialvaluechange() {                 this.set('_value', this.initialvalue);           }       }        customelements.define(parameterblock.is, parameterblock);   </script> </dom-module> 

when index of dropdown menu changes reset _parameterdata [] , assume after future changes _parameterdata evaluated new elements. however, seems list remembers previous initial value after corresponding listener not called , previous changes first text element don't reset 111 though i'm changing selection. if use different initial values works fine, assume need tell polymer somehow reset elements, how?

since, observing initialvalue application not know initialvalue changing different name. why not resetting default values assigned.

you need observe both properties name , initialvalue. so, change observer code :

static observers() {     return [       '_oninitialvaluechange(name, initialvalue)'     ] } 

and method to:

_oninitialvaluechange(name, initialvalue) {     this.set('_value', this.initialvalue);   } 

i have updated plnkr link provided.


Comments

Popular posts from this blog

PHP and MySQL WP -

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

go - golang pprof for c library code -