gpt4 book ai didi

javascript - 在 backbone.js 中获取模型的属性

转载 作者:数据小太阳 更新时间:2023-10-29 04:31:25 25 4
gpt4 key购买 nike

我有这个模型

var Item = Backbone.Model.extend({
url: 'http://localhost/InterprisePOS/Product/loaditembycategory/Event Materials'
});

var onSuccess = function(){ alert("success"); };

还有一个集合

var Items = Backbone.Collection.extend({
model: Item
});

我的其余代码在这里:

var item = new Item();
var items = new Items();
item.fetch({ success: onSuccess });
alert(items.get("ItemCode"));

我想要的是简单地获取模型的属性。现在我在 Firebug 上有这个。此外,当我在浏览器上运行它时,我会收到警报成功,下一个警报是未定义enter image description here

这是输出:

{"ErrorMessage":null,"Items":[{"ErrorMessage":null,"CategoryCode":"Event Materials","ClassCode":null,"Components":null,"GroupCode":null,"ImageURL":null,"ItemCode":"ITEM-123","ItemDescription":"Old World Lamppost\u000d\u000a\u000d\u000a","ItemName":"GET123","ItemType":null,"KitItem":null,"Matrix":null,"Prefix":null,"RetailPrice":107.990000,"SalesTaxCode":null,"UPCCode":null,"UnitMeasureCode":"EACH","UnitsInStock":0,"Value":null,"WholesalePrice":95.000000}]}

注意

这只是它返回的项目之一。我只是在 item 上发布,这样它就不会那么长。

最佳答案

您正在调用 get在您的收藏中(参见 http://documentcloud.github.com/backbone/#Collection-get)

看来您真正想要的是遍历集合,并对每个项目调用 get

items.each(function(item) {
item.get('ItemCode');
});

如果不是,请详细说明!

此外,如果您的模型 url 响应模型列表,则您应该在 Collection 而不是模型中定义 url 属性。

var Items = Backbone.Collection.extend({
model: Item,
url: 'http://localhost/InterprisePOS/Product/loaditembycategory/Event Materials'
});

您的响应应该是一个数组,其中 Items 作为数组元素 [<item1>, <item2>, ...] , 而不是带有 {'Items': [<item1>, <item2>, ...] } 的 JSON 对象.如果您不想修改响应,则必须实现 parse在您的收藏上发挥作用 ( http://documentcloud.github.com/backbone/#Collection-parse )。

此外,正如@chiborg 提到的,您正在调用 getfetch之后(将异步完成),因此无法保证您的数据可用。

此处正确的解决方案是在集合上绑定(bind)一个“刷新”监听器。

items.on('refresh', function() {
// now you have access to the updated collection
}, items);

关于javascript - 在 backbone.js 中获取模型的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9819510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com