【问题标题】:How to get the observable property's value in the computed property in Knockout-Validation如何在 Knockout-Validation 的计算属性中获取可观察属性的值
【发布时间】:2013-03-17 15:36:50
【问题描述】:

我使用 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函数中获取property1的值,但在计算属性“property2”中不起作用。

如何解决,谢谢!!!!!!!!!

【问题讨论】:

    标签: validation knockout.js knockout-validation computed-observable


    【解决方案1】:

    使用对象字面量时,您需要单独定义计算属性:

    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 作为第二个参数传递是不够的,因为它将引用全局窗口对象而不是对象字面量本身。

    【讨论】:

      猜你喜欢
      • 2017-04-25
      • 2016-04-22
      • 2013-04-26
      • 2020-11-20
      • 1970-01-01
      • 2017-12-23
      • 2017-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多