这是我的密码:
room_module = Alloy.Models.room_module
console.info "=========room_module======="
console.info room_module
console.info "=========room_module.get room_1======="
console.info room_module.get "room_1"
console.info "=========room_module.room_1======="
console.info room_module.room_1这是控制台输出:
[iphone, 8.2, 192.168.1.126] =========room_module=======
[INFO] [iphone, 8.2, 192.168.1.126] {
"room_1": "客餐厅",
"room_2": "卧室",
"room_3": "厨房",
"room_4": "room",
"room_5": "room",
"room_6": "room"
}
[INFO] [iphone, 8.2, 192.168.1.126] =========room_module.get room_1=======
[INFO] [iphone, 8.2, 192.168.1.126] 客餐厅
[INFO] [iphone, 8.2, 192.168.1.126] =========room_module.room_1=======
[INFO] [iphone, 8.2, 192.168.1.126]为什么room_module.room_1不能得到这个值?我想把room_module.room_1展示给我的xml文件。我怎么能这么做?
发布于 2015-04-11 10:18:51
如您所知,合金模型继承自主干模型。
// Get the value of an attribute.
get: function(attr) {
return this.attributes[attr];
},当您调用console.info(模型)时,它可能正在执行Model.toJSON (它没有toString方法):
// Return a copy of the model's `attributes` object.
toJSON: function(options) {
return _.clone(this.attributes);
},我认为有两种可能性:
room_module.attributes['room_1']room_module.toJSON().room_1在合金文档中,没有任何关于在xml文件中访问模型的声明。您需要从控制器访问它。
发布于 2015-04-11 20:04:20
脊骨js使用属性对象来存储属性。在您的例子中,您需要执行roommodule.get('room1')。为了保持一致,使用get和set而不是通过roommodule.attributes.room1直接访问总是一个很好的实践。
因为它可能会触发模型中的一些事件。
https://stackoverflow.com/questions/29555411
复制相似问题