我们正在使用 kendo ui mvvm ,我们遇到的问题是将方法绑定到我们的视图。我们有以下viewModel:
return kendo.observable({
isSelectedHaertefallTyp: function () {
return "test";
},
unternehmensbegrenzung: null,
abnahmestellenbegrenzung: null,
minDurchschnitt: null,
maxDurchschnitt: null,
bescheidbegrenzung: null,
sollzahlung: null,
bereitsGezahlt: null
});
所有属性都是正确的,但 isSelectedHaertefallTyp 方法没有受到限制,我收到以下错误:
未捕获的TypeError:d.isSelectedHaertefallTyp不是函数(...)
以下是我们在视图中对此方法进行binf的方法:
我担心这个观点会过早地评估这个方法,而且此时绑定还没有出现?
有任何建议如何解决这个问题?
修改
我可以通过在父ViewModel中创建相同的方法名称来“解决”解决方案。
事情是我有一个父视图和孩子有自己的绑定。这适用于属性,但不适用于方法,因此这是如何工作的:
base.prototype.bind.call(this); // parent binding
this.generalInformationWizardStepComponent.bind(); // child binding
this.additionalInformationWizardStepComponent.bind(); // child binding
this.abnahmestelleWizardStepComponent.bind(); // child binding
this.belieferungWizardStepComponent.bind(); // child binding
this.summaryStepComponent.bind(); // child binding
以下是我在父ViewModel中“解决”解决方案的方法:
return kendo.observable({
isHaertefallTypSelected: function (value) {
/* Markup Method Only
The method is been bounded to early trying to get it from parent ViewModel and not considering the children
*/
},
showAdditionalInformation: true,
currentStep: 0
});
修改
我发现了这个问题,即使我无法修复它。问题是父母有孩子并绑定他们,所以这应该是修复:http://www.telerik.com/forums/nested-views-bindings