Data binding 聚合dom绑定模板中同级元素之间的数据绑定
我有一个Data binding 聚合dom绑定模板中同级元素之间的数据绑定,data-binding,binding,polymer,polymer-2.x,Data Binding,Binding,Polymer,Polymer 2.x,我有一个模板,包含两个元素——一个是按钮,另一个是列表。加载列表时(它的加载属性为真),按钮活动属性应设置为假,反之亦然 我无法使他们之间的联系发挥作用。当然,我可以从整个过程中创建一个新元素,但如果可能的话,我宁愿避免它 这是我的模板: <dom-bind id="messageListScreen"> <template> <paper-progress-button on-click="fetchNewMessages" active=
模板,包含两个元素——一个是按钮,另一个是列表。加载列表时(它的加载
属性为真
),按钮活动
属性应设置为假
,反之亦然
我无法使他们之间的联系发挥作用。当然,我可以从整个过程中创建一个新元素,但如果可能的话,我宁愿避免它
这是我的
模板:
<dom-bind id="messageListScreen">
<template>
<paper-progress-button on-click="fetchNewMessages" active="[[!loading]]" active-text="Refresh" inactive-text="Refreshing..." raised></paper-progress-button>
<message-grid id="grid" loading="{{loading}}"></message-grid>
</template>
</dom-bind>
使用上述代码,不会发生任何事情。如果我这样做
<script>
document.addEventListener("WebComponentsReady", function(event){
let self = document.getElementById('messageListScreen');
self.loading = self.$.grid.loading;
});
</script>
文档。添加事件列表器(“WebComponentsReady”,函数(事件){
让self=document.getElementById('messageListScreen');
self.load=self.$.grid.load;
});
self.loading
确实获得了grid.loading
的值,但是当grid.loading
的值改变时,self.loading
的值保持不变
是否有任何方法可以绑定
网格的值。使用
将加载到
的活动属性?您应该使用双向绑定
将notify:true
添加到message grid
中的loading
属性中,并通过this.set('loading',false)
(而不是this.loading=false
)在message grid
中设置加载
在messageListScreen
中还应该有一个名为load
的属性。您可能有,您不需要它,但它对于文档来说很好
另一件事是,如果布尔属性存在,则它们始终为真,因此无论属性具有什么值(真| |假),加载在这两种情况下都始终为真。将布尔值改为数字(int),其中1为真,0为假。您应该使用双向绑定
将notify:true
添加到message grid
中的loading
属性中,并通过this.set('loading',false)
(而不是this.loading=false
)在message grid
中设置加载
在messageListScreen
中还应该有一个名为load
的属性。您可能有,您不需要它,但它对于文档来说很好
另一件事是,如果布尔属性存在,则它们始终为真,因此无论属性具有什么值(真| |假),加载在这两种情况下都始终为真。将布尔值改为数字(int),其中1为true,0为false。尝试在WebComponentsReady
侦听器外部初始化加载属性(即document.querySelector('messageListScreen')。加载
)。这是您的示例明显偏离官方文档()的唯一细节。@craPkit似乎仍然不起作用。。。我以前看过那个官方文档的例子,但它们的数据绑定只是“单向的”,因为它只设置一次,然后再也不会更改。请记住,这是我正在努力解决的双向绑定问题。请尝试在WebComponentsReady
侦听器之外初始化加载属性(即document.querySelector('messageListScreen')。加载
)。这是您的示例明显偏离官方文档()的唯一细节。@craPkit似乎仍然不起作用。。。我以前看过那个官方文档的例子,但它们的数据绑定只是“单向的”,因为它只设置一次,然后再也不会更改。记住,这是我正在努力解决的双向绑定。太好了,notify:true
成功了!不确定布尔属性在存在时始终为真是什么意思?我在属性声明中将加载初始化为false
,然后由
设置。布尔值在标记中设置,就好像存在booleanname一样,将布尔值设置为true。如果不存在,则将其设置为false。太好了,notify:true
成功了!不确定布尔属性在存在时始终为真是什么意思?我在属性声明中将加载初始化为false
,然后由
设置。布尔值在标记中设置,就好像存在booleanname一样,将布尔值设置为true。如果不存在,则将其设置为false。