0

我有一个视图模型如下:

function foo(param){

    this.prop = param;

};

var viewModel = function(){

    this.foo = ko.observable();

};

并且在视图中

<input type="text" data-bind="value: foo.prop" />

在视图中,当我使用语法时

<span data-bind="text: foo.prop" ></span>

它什么也没显示,对更新没有反应,但有

<div data-bind="with: foo" >
    <span data-bind="text: prop" ></span>
</div>

它在值变化时起作用并发生变化。

第一次实施有什么问题?

4

1 回答 1

1

在您的 ViewModel 中,如果您使用的是另一个对象的某个变量,我认为您最好在此对象定义中将其变量标记为可观察的。例如,您可以执行以下操作:

function FooClass(param) {
    this.prop = ko.observable(param);
};

function viewModel() {
    this.foo = new FooClass('Hello World');
};
ko.applyBindings(new viewModel());

jsfiddle 示例

于 2013-04-22T17:46:01.287 回答