【发布时间】:2017-10-27 10:43:54
【问题描述】:
我需要使用来自视图/页面循环中的对象的值从 ViewModel 获取值。
<!-- ko foreach: ExtendedItems() -->
<tr>
<!-- ko foreach: PriceGroups() -->
<!-- ko if: DeductibleAmount() === $root.FindDeductibleValue($parent.Provider()) -->
<td> --Content-- </td>
<!-- /ko -->
<!-- /ko -->
</tr>
<!-- /ko -->
我在 ViewModel 中有一个函数可以找到正确的值:
self.FindDeductibleValue = function (provider) {
return self.SelectedDeductibles.findObs('Provider', { Provider: provider }).Value();
}
当我从 ViewModel 调用此函数时,它可以正常工作,但是当我尝试在 IF 语句的视图/页面中使用它时,我得到“无法在 viewModel.self.FindDeductibleValue 读取属性 'Value' of null”。
我已将$parent.Provider() 替换为一个数字,以确保$parent.Provider() 不为空,但它不会更改我收到的错误。
难道不能这样在 IF 语句中使用函数吗?
【问题讨论】:
-
哎呀!实际上,这行得通...在尝试绑定数据之前,我需要填写
SelectedDeductibles。我在 ViewModel 中尝试该函数的地方已经填充了,但是当我尝试在视图/页面的 IF 语句中绑定它时它还没有填充。
标签: javascript asp.net-mvc knockout.js binding