我在操作对象/数组组合方面遇到了一些麻烦。获取更改以反映嵌套的dom-repeat。它工作但感觉就像一个hacky方法 - 任何人都可以告诉我,如果有更好的方法吗?
http://jsbin.com/dijogo/edit?html,output(仅限Chrome)
请参阅itemTap函数了解特定的hackiness区域。或者也许有更好的方法来解决它?
答案 0 :(得分:2)
这样做
itemTap: function(e) {
e.model.set('i.container.value', e.model.i.container.value + ' tapped');
},
而不是
itemTap: function(e) {
//This is an overly complicated way to update a "container.value" in the items object arrays no?!
e.model.set('i.container.value', e.model.i.container.value + ' tapped');
var array = this.items[e.model.cat];
array[e.model.index].container.value += ' tapped';
this.set(['items', e.model.cat], []);
this.async(function(){this.set(['items', e.model.cat], array);});
},
Fwiw,你也可以这样做
this.items = {
'One': [{container:{value: '1a'}}, {container:{value: '1b'}}],
'Two': [{container:{value: '2a'}}, {container:{value: '2b'}}],
'Three':[{container:{value: '3a'}}, {container:{value: '3b'}}]
});
而不是
this.set(['items', 'One'], [{container:{value:'1a'}}, {container:{value:'1b'}}]);
this.set(['items', 'Two'], [{container:{value:'2a'}}, {container:{value:'2b'}}]);
this.set(['items', 'Three'], [{container:{value:'3a'}}, {container:{value:'3b'}}]);
与
相同 this.categories = ['One', 'Two', 'Three'];