【问题标题】:KnockoutJS ObservableKnockoutJS 可观察
【发布时间】:2015-09-18 21:02:00
【问题描述】:

我是第一次使用 Knockout,但我正在努力解决一个 observable。我已经在一个视图模型中声明了它,我需要访问另一个视图模型中的值。关于如何去做的任何提示?

【问题讨论】:

  • 您有任何示例代码可以展示吗?
  • 一般情况下,只需firstModel.someObservable()(假设您的第二个视图模型知道第一个),但如果没有更多上下文,很难给出建议。

标签: javascript knockout.js durandal


【解决方案1】:

你要做的,就是继承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
}

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-11-02
      • 2012-04-20
      • 2017-11-25
      • 1970-01-01
      • 2012-07-16
      • 2015-11-30
      • 2018-08-04
      • 2013-12-16
      • 2013-05-23
      相关资源
      最近更新 更多