Durandal:在一个孩子中创建功能并从另一个孩子中消费

时间:2018-07-09 06:38:41

标签: knockout.js durandal durandal-2.0

我有一个使用Knockout开发的Durandal.JS应用程序。这是我的项目的结构:

- Parent
    - Index.js
    - Index.html
- Child1
    - Index.js
    - Index.html
- Child2
    - Index.js
    - Index.html

我在UpdateData()中声明了一个函数Child2/Index.js,我想从Child1/Index.js中使用该函数

Child2中声明此函数的原因是,我在Child2中声明了其他变量和控件。通过调用UpdateData()方法,我想更新在Child2中声明的所有变量的值。

我不知道该如何处理。

1 个答案:

答案 0 :(得分:0)

Durandal默认情况下使用require加载模块。您可以尝试在child1模块中要求使用child2模块。

//child1 module
define(function (require) {

//require child2 into the module
var child2 = require('Child2/Index');

//use the method
child2.UpdateData();
});

要执行此操作,必须从UpdateData()返回Child2方法。

//child2 module
define(function(){
return {
UpdateData:function(){
  //your method
}
}});

有关更多信息,您可以阅读有关如何创建可被其他模块重用的模块的文档。 http://durandaljs.com/documentation/Creating-A-Module.html