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

Posted

技术标签:

【中文标题】Durandal:在一个孩子中创建功能并从另一个孩子中消费【英文标题】:Durandal: Create function in one child and Consume from another child 【发布时间】:2018-12-16 18:39:58 【问题描述】:

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

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

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

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

我不知道如何处理这种情况。

【问题讨论】:

您是否尝试过使用内置消息事件? durandaljs.com/documentation/Leveraging-Publish-Subscribe.html 【参考方案1】:

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

//child1 module
define(function (require) 

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

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

为此,您必须从Child2 返回UpdateData() 方法。

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

);

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

【讨论】:

以上是关于Durandal:在一个孩子中创建功能并从另一个孩子中消费的主要内容,如果未能解决你的问题,请参考以下文章

从另一个 UIViewController 的 .xib 文件在 ViewController.h 中创建 IBOutlets

从另一个类模块引用在 main 中创建的类的实例

我可以从另一个数据库服务器在我的数据库服务器中创建视图吗

如何在python中反转字典并从重复的键值中创建一个列表

从一个线程读取变量并从另一个线程写入的正确方法?

尝试使用从另一个站点的 wordpress 数据库中动态获取的数据在新网页中创建菜单