knockout中viewmodel跟子model相互调用

用knockout写前端复杂js逻辑的确很方便,并且html界面也很清爽。javascript

在ko中对于复杂的业务逻辑我会给viewmodel建立一些子model对象,可是viewmodel跟子model怎样相互调用呢?html

//viewModel
var viewModel = function (data) {
    var self = this;
    self.User = ko.observable(new model(data.User, self));//赋值为一个新对象
    self.Remark = ko.observable(data.Remark);

    self.Submit=function(obj){
        //调用子对象属性
        var name = self.User().Name();
        //调用子对象方法
        self.User().Validate();
    }

    self.TestFun = function(){
        //逻辑
    }
}

//子model
var model = function (data, parentModel) {
    var self = this;
    self.Id = ko.observable(data.Id);
    self.Name = ko.observable(data.Name);
    
    self.Validate = function(){
        //逻辑
    }

    self.Save = function(obj){
        //调用父对象属性
        var remark = parentModel.Remark();
        //调用父对象方法
        parentModel.TestFun();
    }
}
    
相关文章
相关标签/搜索