我使用Knockout-Validation框架来验证viewModel。
我有一个视图模型定义如下:
ko.validation.init({
decorateElement:true,
errorElementClass: 'invalid',
insertMessages: false
});
var viewModel = ko.validatedObservable({
propety1: ko.observable().extend({ required: true }),
propety2: ko.computed(function () {
return this.propety1();
}, this),
form_onsubmit: function(form) {
console.log(this.propety1());
return false;
}
});
$(function () {
ko.applyBindings(viewModel);
});它可以在form_onsubmit函数中获取属性1的值,但在计算属性"property2“中不起作用。
如何解决,谢谢!
发布于 2013-03-17 23:51:40
使用对象字面量时,您需要单独定义计算属性:
var viewModel = ko.validatedObservable({
propety1: ko.observable().extend({ required: true }),
form_onsubmit: function(form) {
console.log(this.propety1());
return false;
}
});
viewModel().propety2 = ko.computed(function () {
return this.propety1();
}, viewModel());简单地传递this作为第二个参数是不够的,因为它将引用全局窗口对象,而不是对象文字本身。
https://stackoverflow.com/questions/15462615
复制相似问题