【发布时间】:2012-06-05 01:51:00
【问题描述】:
我一直在使用 MVC4 SPA 和 knockoutJs,
我的问题是我想将一个值传递给 ko.computed。这是我的代码。
<div data-bind="foreach: firms">
<fieldset>
<legend><span data-bind="text: Name"></span></legend>
<div data-bind="foreach: $parent.getClients">
<p>
<span data-bind="text: Name"></span>
</p>
</div>
</fieldset>
</div>
self.getClients = ko.computed(function (Id) {
var filter = Id;
return ko.utils.arrayFilter(self.Clients(), function (item) {
var fId = item.FirmId();
return (fId === filter);
});
});
我只想将公司名称显示为标题,然后在其下方显示客户端。 该函数正在被调用,但 Id 未定义(我也尝试过使用“Firm”),如果我更改:
var filter = id; TO var filter = 1;
效果很好,
那么...如何将值传递给 ko.computed?不需要是Id,也可以是Firm对象等。
【问题讨论】:
-
Id 应该是你的 viewmodel 上的一个 observable。您应该只从计算中访问它。
标签: javascript knockout.js asp.net-mvc-4