2013-08-17 62 views
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”。这是一个好的开始。但是,如果我将昵称更改为其他名称,则名称不会更新。为什么?

+3

我会看看你的呈现的输出,看看它是否匹配类似的东西:http://jsfiddle.net/rniemeyer/kLqzj/。此外,更新绑定到'Person.Name'的字段将不起作用,因为它是一个计算(不是可写的计算)。但是,“昵称”字段的更新应反映在“名称”字段中。 –

回答

1

而且,正如通常情况一样......第二天,当我张贴这张照片并带着新鲜眼睛回来时,我自己修复了它。这个问题是一个错字。这总是很愚蠢的,不是吗?

感谢大家花时间阅读本文,包括RP尼迈耶!

相关问题