不知道这里出了什么问题,但是 KnockoutJS 在查找我的MasterViewModel
. 2.2.1
与 jQuery 一起使用,1.8.x
而不是我的第一个 KJS 应用程序。这里是:
初始化
$(function() {
window.vm = new MasterViewModel();
ko.applyBindings(vm);
});
视图模型
function MasterViewModel(data) {
var self = this;
self.currentAppView = ko.observable();
// Users
self.userList = ko.observableArray([]);
self.templateListGetter = ko.computed(function() {
$.getJSON("/user/list"), function(data) {
var mapped = $.map(data, function(item) { return new userModel(item) });
self.userList(mapped);
};
});
self.goToAppView = function(appView) {
location.hash = '!/' + appView;
};
Sammy(function() {
this.get('#!/:appView', function() {
self.currentAppView(this.params.appView);
$('.appview').hide();
ko.applyBindings(new window[this.params.appView+'VM']());
});
this.notFound = function(){
location.hash = "!/dashboard";
}
//this.raise_errors = true;
}).run();
}
风景
<table class="table table-bordered table-striped">
<tbody data-bind="foreach: userList">
<tr>
<td data-bind="text: guid"></td>
<td data-bind="text: firstName"></td>
<td data-bind="text: lastName"></td>
<td data-bind="text: email"></td>
<td data-bind="text: updated"></td>
<td data-bind="text: suspended"></td>
</tr>
</tbody>
</table>
我有一个正在加载的简单表格
即使在仔细检查了几件事(例如添加defer="defer"
到我的 JS 标记并确保userList
存在)之后,它也根本找不到 observableArray。它给出了错误:
Message: ReferenceError: userList is not defined;
Bindings value: foreach: userList Error {}
有人知道发生了什么吗?
更新
对于那些想知道每次哈希更改时调用什么的人:
function usersVM() {
// Data
var self = this;
// Behaviours
$('#users').show();
}