KnockoutJS - 创建对象不起作用
KnockoutJS - creating object doesn't work
我正在做一个带有菜单和子菜单的导航列表。
我有以下结构:
function Menu(navigation) {
this.NavigationUrl = ko.observable(navigation.NavigationUrl);
this.NavigationTitle = ko.observable(navigation.NavigationTitle);
this.NavigationDescription = ko.observable(navigation.NavigationDescription);
var mappedChildren = ko.utils.arrayMap(navigation.Children, function (child) {
return new Menu(child);
});
this.Children = ko.observableArray(mappedChildren);
}
function DashboardViewModel() {
var self = this;
self.LoggedUser = ko.observable("");
self.Navigations = ko.observableArray([]);
$.get('/Home/DashboardDependencies', {}, function (result) {
self.LoggedUser(result.LoggedUser);
var mappedNavigations = ko.utils.arrayMap(result.Navigations, function (item) {
var menu = new Menu(item);
// When I alert item, the result appears properly:
// { "NavigationTitle": "blah", "NavigationDescription": "bleh" [...] }
alert(JSON.stringify(item));
// But when I alert the new menu object, the result doesn't appear:
// Just: "{}"
alert(JSON.stringify(menu));
return menu;
});
self.Navigations = mappedNavigations;
});
}
ko.applyBindings(new DashboardViewModel());
所以,检查一下。当我尝试提醒项目变量时,结果显示正确。当我尝试提醒新的 Menu 对象时,结果只显示{}
.为什么会这样?
谢谢大家的帮助!
self.Navigations = ..
不会更新现有的可观察数组。因此,视图绑定的可观察数组永远不会更新,视图也永远不会更新。
请改用self.Navigations(..)
。
相关文章:
- 面向对象的Javascript代码在IE7中不起作用
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 对象文字方法上的Javascript绑定不起作用
- 当我通过.aspx.cs创建按钮时,它不起作用
- 我正在创建一个聊天,但每次我发送消息时,它都不会让我再发送另一条消息,就像表格一样;不起作用
- 在机会不起作用时设置查找值's在潜在客户资格鉴定后创建
- 带有普通对象的Ember.js查找不起作用
- 在SVG中创建带有外来对象的文本区域的Javascript不起作用
- JQuery-动态创建的元素css不起作用
- 在 JQUERY 中创建 HTML 后,Jquery 方法不起作用
- 当我动态创建元素时,选择的插件不起作用
- jQuery Animate 在创建图库滑块时不起作用
- 谷歌浏览器模式正则表达式在使用setCustomValidity动态创建表单时不起作用
- KnockoutJS - 创建对象不起作用
- 在对象创建时添加事件处理程序不起作用
- 单击使用Handlebars创建的对象不会;不起作用
- 解析云代码-通知不起作用,对象不删除
- 用JavaScript删除ajax(destroy.js.erb)不起作用的对象
- 在对象构造器onclick事件中创建的HTML按钮不起作用
- document.write()在创建XMLHttpRequest对象时不起作用