Knockout可根据属性名称动态访问observable

时间:2016-04-25 15:38:08

标签: knockout.js observable

我有一个viewmodel,其属性为observable。 我有一个从服务器端验证返回的属性名称和错误列表。我需要根据属性名访问observable并设置错误。我想让这个通用。

视图模型:

var model = ko.validatedObservable({reason: ko.observable()});

我需要做这样的事情:

var propName = "reason";
model[propName]("Something random");

我可以用这种方式动态访问observable吗? (不起作用)。

1 个答案:

答案 0 :(得分:0)

以这种方式思考:'模特'是一个加载了对象的可观察变量。这表明我们应首先读取observable,然后访问object属性:

var model = ko.validatedObservable({ reason: ko.observable() });
var propName = "reason";
model()[propName]("Something random");

注意我将模型作为一个observable(model())读取,然后访问object属性(model()[propName])。