2015-06-28 5 views
1

У меня есть следующий пользовательский элемент. Из краткости я включил только соответствующие биты кода:Полимерная двусторонняя привязка данных

<dom-module id="my_custom_element"> 
    <template> 
     ... 
    </template> 
</dom-module> 
<script> 
    Polymer({ 
     is: 'my_custom_element', 
     properties: { 
      selecteditem: { 
       type: String, 
       value: '', 
       notify: false     
      } 
     }, 
     //other functions 
    }); 

Обратите внимание, что поле уведомит установлено значение ложно на свойстве SelectedItem.

Вот использование пользовательского элемента:

<my_custom_element id="myElement" selecteditem={{myselecteditem}}></my_custom_element> 

Если что-то вызывает SelectedItem свойство изменять внутри пользовательского элемента, то я бы ожидать, что следующее предупреждение заявление, чтобы не отображать новое значение, так как уведомить установлено значение false. Однако фактическое поведение заключается в том, что оно отображает новое значение. Почему это?

alert($('#myElement').prop('selecteditem')); 

В следующей статье:

https://www.polymer-project.org/1.0/docs/devguide/data-binding.html

ясно говорится:

«Если свойство привязки не имеет уведомления установлен флаг, только в одну сторону (вниз) привязка ».

Но я испытываю «восходящую» привязку в этом сценарии.

ответ

0

Возможно, я ошибаюсь, но я не думаю, что вы видите upward переплет.

Свойство на вашем my-custom-element изменится независимо от того, включена ли двусторонняя привязка или нет, однако он не будет распространяться вверх до родителя my-parent-element.

так myProp в my-parent-element не будет обновляться, если selectedItem изменений.

<dom-module id="my-parent-element"> 
    <template> 
     <my-custom-elment selecteditem={{myProp}}> 
    </template> 
</dom-module> 
+0

Благодарим за отзыв. –

Смежные вопросы