0

好的,我给。我第一次尝试在一个新的 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 模型中的值。假设该值是“傻瓜”。Person.Name 在 MVC 模型中不存在。

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

4

1 回答 1

1

And, as is typically the case... Once I posted this and came back with fresh eyes the next day, I fixed it myself. The issue was a typo. It's always something stupid, isn't it?

Thanks to everyone that took the time to read this, including RP Niemeyer!

于 2013-08-19T21:24:28.950 回答