asp.net-mvc-4 – 为一个页面使用两个Knockout视图模型
发布时间:2020-12-16 07:33:07 所属栏目:asp.Net 来源:网络整理
导读:我在淘汰赛中设置了两个视图模型. $.getJSON("/api/administrators",function (data) { var AccessViewModel = { administrators: ko.observableArray(data) }; ko.applyBindings(AccessViewModel);});$.getJSON("/api/roles",function (data) { var RolesVi
我在淘汰赛中设置了两个视图模型.
$.getJSON("/api/administrators",function (data) { var AccessViewModel = { administrators: ko.observableArray(data) }; ko.applyBindings(AccessViewModel); }); $.getJSON("/api/roles",function (data) { var RolesViewModel = { definedRoles: ko.observableArray(data) }; ko.applyBindings(RolesViewModel); }); 我能够从视图中的管理员那里获取信息,但无法从定义的角色中提取任何内容. <ul data-bind="foreach: definedRoles"> <li data-bind="text: name"></li> </ul> 有人能指出我正确的方向吗? 解决方法
每个部分只能调用一次ko.applyBindings.如果未传递第二个参数,则该部分是整个页面.如果你有一个特定的部分,比如DIV,你应该把它作为第二个参数传递.
或者,您可以为页面创建一个视图模型,并为两个列表创建一个属性,然后将页面绑定到此单个视图模型.我推荐这种方法.该代码可能如下所示: var ViewModel = function() { this.administrators = ko.observableArray([]); this.definedRoles = ko.observableArray([]); }; var vm = new ViewModel(); ko.applyBindings(vm); $.getJSON("/api/administrators",function (data) { vm.administratos(data); }); $.getJSON("/api/roles",function (data) { vm.definedRoles(data); }); 请记住,因为ko.applyBindings只需要调用一次,所以应该尽早完成.由于几个原因,从ajax方法调用它通常是一个坏主意.一,ajax方法不再可以作为更新调用重用;另外,其他页面功能必须等到ajax方法返回才能开始工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 获取当前请求的凭据以便在WebRequest中使用
- asp.net-mvc – 如何在asp.net mvc中处理分页?
- asp.net – Webmatrix 2:存储静态值
- asp.net fileupload控件上传文件与多文件上传
- asp.net-mvc – ASP.NET MVC – 如何重定向安全?
- asp.net – tinymce在回发时获取HTML代码
- 如何从ASP.NET中的Web请求返回pdf?
- asp.net-mvc-3 – 在ASP.NET MVC3中的自定义授权属性中使用
- asp.net – 在线.Net编码
- asp.net-mvc – 我应该将ASP.NET MVC作为NuGet包引用吗?
推荐文章
站长推荐
热点阅读