javascript - knockout 简单绑定(bind)不起作用

标签 javascript knockout.js binding jsfiddle

我正在尝试一个将对象属性绑定(bind)到 UI 的简单示例。

我的例子在这里http://jsfiddle.net/arendu/m14mohda/17/

我有以下 HTML:

The name is <span data-bind="text: personName"></span>
<button type="button" onlick="changeName()">Click Me!</button>

以及以下 js 脚本:

var myViewModel = {
    personName: ko.observable('Foo'),
    personAge: ko.observable(123)
};

var changeName = function () {
    myViewModel.personName("Bar")
}
ko.applyBindings(myViewModel);

我的问题是,为什么单击按钮时显示的名称没有从“Foo”更改为“Bar”?

谢谢

最佳答案

您的代码存在一些问题。主要问题在于您尝试设置可观察值的方式。 Observables 应该用作 getter/setter 函数。

http://jsfiddle.net/m14mohda/16/

The name is <span data-bind="text: personName"></span>
<button type="button" data-bind="click: changeName">Click Me!</button>

var myViewModel = {
    personName: ko.observable('Foo'),
    personAge: ko.observable(123)
};

myViewModel.changeName = function() {
    var newName = myViewModel.personName() === 'Foo' ? 'Bar' : 'Foo';
    myViewModel.personName(newName);
}
ko.applyBindings(myViewModel);

关于javascript - knockout 简单绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31993657/

相关文章:

javascript - 如何检测javascript中的任何按键

javascript - Laravel Blade foreach 中的 HTML 表单

c# - ASP.NET Core 绑定(bind)区分大小写

wpf - 如何将数组绑定(bind)到 WPF 数据网格中的列

WCF net.tcp 绑定(bind)、消息格式和安全问题

javascript - 如何使用 Javascript 来保持选中并显示复选框的总数?

javascript - createSVGPoint 不是函数?

javascript - Knockout JS 声明式绑定(bind)内部如何工作

javascript - 在循环中单击描述时,knockout.js 不会触发单击事件

asp.net-mvc - 获取 "The JSON request was too large to be deserialized"