首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Knockout-Validation的计算属性中获取observable属性的值

如何在Knockout-Validation的计算属性中获取observable属性的值
EN

Stack Overflow用户
提问于 2013-03-17 23:36:50
回答 1查看 3.5K关注 0票数 0

我使用Knockout-Validation框架来验证viewModel。

我有一个视图模型定义如下:

代码语言:javascript
复制
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“中不起作用。

如何解决,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-17 23:51:40

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

代码语言:javascript
复制
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作为第二个参数是不够的,因为它将引用全局窗口对象,而不是对象文字本身。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15462615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档