0
好的,我给。我试图在新的MVC4项目中首次连接KO。我很亲密,但有些东西稍微偏离了......希望有一位居住在淘汰赛中的天才球员愿意突围而出,并将我从痛苦中拯救出来!KnockoutJS不反映依赖可观察对象的变化
我包括我的页面(实际变量名称不同)对下列JS -
$(document).ready(function() {
var viewModel = ko.mapping.fromJS(@Html.Raw(Json.Encode(Model)));
viewModel.Person.Name = ko.computed(function() {
return this.Nickname();
}, viewModel.Person);
ko.applyBindings(viewModel);
});
再进一步下跌的页面我有2个文本框 -
@Html.TextBoxFor(model => model.Person.Nickname, new { data_bind = "value: Person.Nickname" })
@Html.TextBox("Test", null, new { data_bind = "value: Person.Name" })
Person.Nickname已经具有来自MVC模型的值。假设这个价值是“诀窍”。 Person.Name在MVC模型中不存在。
在初始页面加载时,两个文本框都包含值“knucklehead”。这是一个好的开始。但是,如果我将昵称更改为其他名称,则名称不会更新。为什么?
我会看看你的呈现的输出,看看它是否匹配类似的东西:http://jsfiddle.net/rniemeyer/kLqzj/。此外,更新绑定到'Person.Name'的字段将不起作用,因为它是一个计算(不是可写的计算)。但是,“昵称”字段的更新应反映在“名称”字段中。 –