Javascript 剔除嵌套对象绑定不起作用(对象未定义)
所以我有四个模型:Javascript 剔除嵌套对象绑定不起作用(对象未定义),javascript,knockout.js,Javascript,Knockout.js,所以我有四个模型: 大厅(视图模型) 信息 战役 运动 我把它们设置成这样: Lobby: function(Messages, Campaigns) { var self = this; self.chat = new Messages(); self.campaigns = new Campaigns(); }, Campaigns: function() {
- 大厅(视图模型)
- 信息
- 战役
- 运动
Lobby: function(Messages, Campaigns) {
var self = this;
self.chat = new Messages();
self.campaigns = new Campaigns();
},
Campaigns: function() {
var self = this;
self.campaigns = ko.observableArray();
},
Messages: function() {
var self = this;
self.message = ko.observable("");
self.messages = ko.observableArray();
},
Campaign: function(campaign) {
var self = this;
var status = ["In Lobby", "In Game", "Finished"];
self.Id = ko.observable(campaign.Id);
self.url = ko.observable("/matchmaking/" + campaign.Id);
self.mapName = ko.observable(campaign.Map);
self.mapImage = ko.observable("/Images/"+ campaign.Map +".jpg");
self.notes = ko.observable(campaign.Notes);
self.status = ko.observable(status[campaign.status]);
}
我有一个简单的绑定来查看聊天模型中的每条消息:
<div id="chat-messages" data-bind="foreach:chat.messages" style=" max-height: 250px; min-height: 80px; overflow-y: auto;">
<div data-bind="text:$data"></div>
</div>
但是,我得到以下错误:
未捕获引用错误:无法处理绑定“foreach:函数”
(){return chat.messages}“消息:未定义聊天
我试着把它们放在一个模型里,像这样把它们分开。各种各样的,它只是不想工作。有什么建议吗 你的问题是
聊天
是可观察的,因此你应该调用聊天()。消息
:)你的问题是聊天
是可观察的,因此你应该调用聊天().messages
:)lobb
的chat
是messages
类型的函数,因此使用绑定data bind=“foreach:chat.messages”
转换为lobble.chat
,它返回一个函数。因此,您需要将绑定更改为data bind=“foreach:chat().messages”
lobb
的chat
是messages
类型的函数,因此使用绑定data bind=“foreach:chat.messages”
将转换为lobble.chat
,返回函数。所以你需要将你的绑定更改为data bind=“foreach:chat().messages”
foreach:chat().messages
?@artm可能是正确的,我猜这是一种拼写错误,发生在我们当中最好的人身上:-)(@QBM5chat
可以在大厅中看到)是的,谢谢,作为答案发布,我会接受foreach:chat().messages
?@artm可能是正确的,我猜这是一种打字错误,发生在我们当中最好的人身上:-)(@QBM5聊天
在大厅
)是的,谢谢,作为答案发布,我会接受
ko.applyBindings(this.viewModel); //where this.viewModel is an instance of Lobby