KnockoutJS Observable

时间:2015-07-01 15:37:30

标签: javascript knockout.js durandal

我第一次与Knockout合作,我正在与一个可观察者进行斗争。我在一个视图模型中声明了它,我需要访问另一个模型中的值。关于如何去做的任何提示?

2 个答案:

答案 0 :(得分:0)

首先在共享范围内声明您的第一个模型,然后是第二个。如果您在第二个模型中执行类似myfirstmodel.myobservable()的操作,则应该看到它并与之交互。

var myModel = whatever();
var mySndModel = whateverElse();

ko.applyBindings(myModel, document.getElementById('whatever'))
ko.applyBindings(mySndModel, document.getElementById('whateverElse'))

whateverElse是您的第二个模型的构造函数,您可以在其中调用myModel.myObservable()

答案 1 :(得分:0)

你需要做的是继承parentViewModel

 function parentViewModel() {
    // Just a best practice potato here :P
    var self = this;

    // Initialize the childViewModel change it's 'this'
    childViewModel.call(self);

    self.observable = ko.observable();
}

function childViewModel() {
    var self = this;

    console.log(self); // It will output the parentViewModel scope
}