2

我有这样的代码:

function ModelA() {
    var self = this;

    self.Message = ko.observable("Mesage");
}

ko.applyBindings(new ModelA());

我想以某种方式继承另一个模型已经绑定的模型:

function Modelb() {
    var self = this;

    self.Message2 = ko.observable("Mesage2");
}

我怎样才能做到这一点?

4

2 回答 2

1

就像 damiens 答案的替代方案一样,如果您尝试将原始模型扩展到的模型是动态的,那么您最好在原始模型中创建一个观测值。

function ModelA() {
    var self = this;

    self.Message = ko.observable("Message");
    self.SubModel = ko.observable();

    self.extendModelB = function() {
        self.SubModel(new ModelB());
    }

    self.extendModelC = function() {
        self.SubModel(new ModelC());
    }
}

function ModelB() {
    var self = this;

    self.Message2 = ko.observable("Message2");
}

function ModelC() {
    var self = this;

    self.Message3 = ko.observable("Message3");
}

然后使用withSubModel observable 上的绑定。只是另一种选择。

于 2013-06-23T17:35:28.873 回答
0

这是一个可能有帮助的笨蛋:http: //plnkr.co/edit/M1Pt9Lt4UKB0Coe3PauH

如果 Html 元素绑定到模型、属性或函数,则绑定到的元素需要在绑定时成为模型的一部分。

这也可能有帮助:http ://www.knockmeout.net/2012/05/quick-tip-skip-binding.html

于 2014-01-24T16:57:22.307 回答