0
我想创建一个自定义复杂对象的控制器,但有嵌套列表绑定的问题。qooxdoo:嵌套列表数据绑定
我有一个JSON数据存储它得到以下数据结构:
var data = [
{
id: 1,
name: 'check all links if they work',
description: 'Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.',
tags: ['a', 'b', 'c']
},
{
id: 2,
name: 'check all titles',
description: 'Maecenas sed diam eget risus varius blandit sit amet non magna.',
tags: ['a', 'b', 'c']
},
{
id:3,
name: 'check layout in all browsers',
description: 'Maecenas sed diam eget risus varius blandit sit amet non magna.',
tags: ['a', 'b', 'c']
},
{
id:4,
name: 'validation if videos works fine',
description: 'Maecenas sed diam eget risus varius blandit sit amet non magna.',
tags: ['a', 'b', 'c']
}
];
我想这样做的:就是这个列表绑定到自定义列表项的UI列表并绑定嵌套的“标签”列表,一个属性到一个自定义的UI控件,显示一个标签列表。
controllerCase.setDelegate({
configureItem : function(item) {
},
createItem : function() {
return new my.custom.Item();
},
bindItem : function(controller, item, id) {
controller.bindProperty("", "model", null, item, id);
controller.bindProperty("name", "name", null, item, id);
controller.bindProperty("description", "description", null, item, id);
controller.bindProperty("tags", "tags", null, item, id);
});
我想将my.custom.Item的'tags'属性绑定到模型中的'tags'属性,但总是得到一个空数组。
嗯,这很奇怪,因为bindProperty只复制引用,所以它不应该在乎它是否是一个数组。你是如何验证它是一个空阵列? 一定要使用数据数组提供的方法,不要信任控制台,因为它可能会显示一个空数组(使用.getItem(x)来检查)。 – 2011-05-31 06:30:26
马丁,你绝对正确。我在控制台中看到[],但是当我尝试通过getItem(x)访问元素时,我看到它们。所以,我用getItem调用代替迭代,并且一切正常。谢谢。 – 2011-05-31 15:34:12