KnockoutJS没有反映对依赖可观察对象的更改

时间:2013-08-17 01:13:11

标签: knockout.js knockout-mapping-plugin

好的,我给。我正试图在新的MVC4项目中第一次连接KO。我非常接近,但是有一些东西只是略微偏离......希望其中一位常驻的Knockout天才愿意俯冲而拯救我免于我的痛苦!

我在我的页面上包含了以下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模型的值。让我们说价值是“傻瓜”。 MVC模型中不存在Person.Name。

在初始页面加载时,两个文本框都包含值“knucklehead”。这是一个好的开始。但是,如果我将昵称更改为其他名称,则不会更新名称。为什么呢?

1 个答案:

答案 0 :(得分:1)

而且,通常就是这样......一旦我发布了这个并且第二天以新鲜的眼睛回来,我自己修理了它。问题是一个错字。这总是愚蠢的,不是吗?

感谢所有花时间阅读此内容的人,包括RP Niemeyer!