我有一个模型对象的元素,我想这样观察:
<polymer-element name="note-editor" attributes="noteTitle noteText noteSlug"> <template> <input type="text" value="{{ model.title }}"> <textarea value="{{ model.text }}"></textarea> <note-ajax-button url="/api/notes/" method="POST" model="{{model}}">Create</note-ajax-button> </template> <script> polymer('note-editor',{ attached: function() { this.model = { title: this.noteTitle,text: this.noteText,slug: this.noteSlug } },}); </script> </polymer-element>
我想观察模型中的变化,但显然不可能在元素中使用modelChanged回调,也不能在note-ajax-button元素中使用.怎么了?我怎样才能做到这一点?
我已经尝试过单独观察这些字段,但它根本不干净.您在那里看到的按钮元素的状态应该根据模型状态而改变,因此我需要观察对象的更改,而不是属性.
谢谢!
解决方法
要观察对象中的路径,需要使用observe块:
polymer('x-element',{ observe: { 'model.title': 'modelUpdated','model.text': 'modelUpdated','model.slug': 'modelUpdated' },ready: function() { this.model = { title: this.noteTitle,slug: this.noteSlug }; },modelUpdated: function(oldValue,newValue) { var value = Path.get('model.title').getValueFrom(this); // newValue == value == this.model.title } });
http://www.polymer-project.org/docs/polymer/polymer.html#observeblock
原文地址:https://www.jb51.cc/js/155421.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。