从视图中引用 observableArray 对象 属性。
Referencing observableArray object property from view.
当我尝试根据 observableArray
中的特定对象 属性 设置按钮的可见性时,Knockout.JS
出现问题。在我看来 绑定 的对象是这个:
function IncomeDeclarationHub() {
var self = this;
//Other properties
self.IncomeDeclarationViewModel = ko.observableArray();
}
当然这是用来填充 observableArray
:
的对象
function IncomeDeclarationViewModel(data) {
var self = this;
//Other properties
self.IsSent = ko.observable(data.IsSent);
}
有时我用数据填充 IncomeDeclarationViewModel
,它工作正常。问题是,只有当 observableArray
的第一个元素中的 属性 IsSent
为真时,我才需要显示一个按钮。所以我尝试了很多事情,比如:
<input type="image" data-bind="visible: IncomeDeclarationViewModel()[0].IsSent()" />
同时更改我为 visible: IncomeDeclarationViewModel[0].IsSent()
或 visible: IncomeDeclarationViewModel()[0].IsSent
提供参考的位置。
但我不断收到此 错误:
Uncaught Error: Unable to parse bindings.
Message: TypeError: Cannot read property 'IsSent' of undefined;
Bindings value: click: Print, visible: myIncomeDeclarationViewModel()[0].IsSent()
我遗漏了什么或哪里错了?
我认为这是因为在某些时候未填充 IncomeDeclarationViewModel 导致错误,因为如果数组为空,第一个元素中将没有对象。
更改对此的绑定以检查数组中是否有元素:
<input type="image" data-bind="visible: IncomeDeclarationViewModel().length > 0 && IncomeDeclarationViewModel()[0].IsSent()" />
另一种方法是使用 with 绑定,只有在 IncomeDeclarationViewModel 的第一项中有对象时,任何子绑定才会显示和执行:
<div data-bind="with: IncomeDeclarationViewModel()[0]">
<input type="image" data-bind="visible: IsSent" />
</div>
当我尝试根据 observableArray
中的特定对象 属性 设置按钮的可见性时,Knockout.JS
出现问题。在我看来 绑定 的对象是这个:
function IncomeDeclarationHub() {
var self = this;
//Other properties
self.IncomeDeclarationViewModel = ko.observableArray();
}
当然这是用来填充 observableArray
:
function IncomeDeclarationViewModel(data) {
var self = this;
//Other properties
self.IsSent = ko.observable(data.IsSent);
}
有时我用数据填充 IncomeDeclarationViewModel
,它工作正常。问题是,只有当 observableArray
的第一个元素中的 属性 IsSent
为真时,我才需要显示一个按钮。所以我尝试了很多事情,比如:
<input type="image" data-bind="visible: IncomeDeclarationViewModel()[0].IsSent()" />
同时更改我为 visible: IncomeDeclarationViewModel[0].IsSent()
或 visible: IncomeDeclarationViewModel()[0].IsSent
提供参考的位置。
但我不断收到此 错误:
Uncaught Error: Unable to parse bindings.
Message: TypeError: Cannot read property 'IsSent' of undefined;
Bindings value: click: Print, visible: myIncomeDeclarationViewModel()[0].IsSent()
我遗漏了什么或哪里错了?
我认为这是因为在某些时候未填充 IncomeDeclarationViewModel 导致错误,因为如果数组为空,第一个元素中将没有对象。
更改对此的绑定以检查数组中是否有元素:
<input type="image" data-bind="visible: IncomeDeclarationViewModel().length > 0 && IncomeDeclarationViewModel()[0].IsSent()" />
另一种方法是使用 with 绑定,只有在 IncomeDeclarationViewModel 的第一项中有对象时,任何子绑定才会显示和执行:
<div data-bind="with: IncomeDeclarationViewModel()[0]">
<input type="image" data-bind="visible: IsSent" />
</div>