Polymer 聚合物1.0+;通知真的不工作
我不确定我的代码中发生了什么,可以使用一些指针来指示可能发生的事情 有点背景 当“pizza”中的任何内容发生更改时,我想让“pizza”将其更改传递给“selectedItem” 现在来看看代码: 以下是我的子元素js:Polymer 聚合物1.0+;通知真的不工作,polymer,polymer-1.0,Polymer,Polymer 1.0,我不确定我的代码中发生了什么,可以使用一些指针来指示可能发生的事情 有点背景 当“pizza”中的任何内容发生更改时,我想让“pizza”将其更改传递给“selectedItem” 现在来看看代码: 以下是我的子元素js: Polymer({ is:"order-pizza-mod", behaviors: [ Polymer.NeonSharedElementAnimatableBehavior ], properties: { mobile: {
Polymer({
is:"order-pizza-mod",
behaviors: [
Polymer.NeonSharedElementAnimatableBehavior
],
properties: {
mobile: {
observer: "screenSizeChanged"
},
pizza: {
notify: true,
observer: "selectedPizza"
},
....
addToOrder: function () { //this is the function that will need to update my parent element.
this.set("pizza.ADD",true);
this.fire('selectPage',4);
console.log("SENT CHANGES");
console.log(this.pizza);
},
....
以下是我的父元素HTML和JS:
HTML:
关于可能发生的事情有什么想法吗?所以我找到了一个解决方案,但不是很好 问题在于:
this.set("pizza.ADD",true);
目前聚合物存在一个未解决的问题,即“this.set”功能不会触发notify。我还尝试了“notifyPath”,但没有成功。我发现迫使polymer触发notify的唯一方法是将变量重新分配给一个新对象,如下所示:
addToOrder: function () { //this is the function that will need to update my parent element.
this.pizza = {'ADD': true,
'CODE':this.pizza.CODE,
'GARNISHES':this.pizza.GARNISHES};
this.fire('selectPage',4);
console.log("SENT CHANGES");
console.log(this.pizza);
},
这很混乱,但可以强制polymer通知数据绑定变量。现在,如果有人知道更好的方法,请告诉我。所以我找到了一个解决方案,但不是很好 问题在于:
this.set("pizza.ADD",true);
目前聚合物存在一个未解决的问题,即“this.set”功能不会触发notify。我还尝试了“notifyPath”,但没有成功。我发现迫使polymer触发notify的唯一方法是将变量重新分配给一个新对象,如下所示:
addToOrder: function () { //this is the function that will need to update my parent element.
this.pizza = {'ADD': true,
'CODE':this.pizza.CODE,
'GARNISHES':this.pizza.GARNISHES};
this.fire('selectPage',4);
console.log("SENT CHANGES");
console.log(this.pizza);
},
这很混乱,但可以强制polymer通知数据绑定变量。现在,如果有人知道更好的方法,请告诉我。而不是这个
properties: {
selectedItem: {
observer:"selectionChanged"
}
}
这样做
observers: [
'selectionChanged(selectedItem.*)'
]
问题是selectedItem
仅在引用全新对象时才被视为已更改。但您正在尝试观察selectedItem
属性的更改,这要求您观察selectedItem.*
而不是此属性
properties: {
selectedItem: {
observer:"selectionChanged"
}
}
这样做
observers: [
'selectionChanged(selectedItem.*)'
]
问题是
selectedItem
仅在引用全新对象时才被视为已更改。但是您正在尝试观察selectedItem
属性的更改,这要求您观察selectedItem.*
预期的行为是什么?当前行为是什么?当我在子元素的“pizza”中更改某些内容时,我希望控制台日志会显示“耶,得到了所有的东西!”预期行为是什么?当前行为是什么?我希望控制台日志会显示“耶,得到了所有的东西!”!当我在子元素的“pizza”中更改某些内容时。很有趣。这是一个很好的观点,我没有想到这一点。谢谢有趣。这是一个很好的观点,我没有想到这一点。谢谢