Javascript Aurelia中的全局函数

Javascript Aurelia中的全局函数,javascript,aurelia,Javascript,Aurelia,我想知道如何在Aurelia中存储一个类似“全局”的函数。我按照本教程“”打开了一个带有动态视图模式的模式,但我不知道应该将此函数放在何处,以便在所有视图路径中重复使用它 我已在默认视图中创建了此函数: //open modal setModal(modal) { this.contentModal = modal; $('.modal').modal(); } 使用该视图模板中的此标记: <a click.delegate="setModal('users')">

我想知道如何在Aurelia中存储一个类似“全局”的函数。我按照本教程“”打开了一个带有动态视图模式的模式,但我不知道应该将此函数放在何处,以便在所有视图路径中重复使用它

我已在默认视图中创建了此函数:

//open modal
setModal(modal) {
    this.contentModal = modal;
    $('.modal').modal();
}
使用该视图模板中的此标记:

<a click.delegate="setModal('users')">Test</a> <a click.delegate="setModal('child-router')">Test 2</a>
<modal>
    <modal-header title.bind="'View Person'"></modal-header>
    <modal-body content.bind="contentModal"></modal-body>
    <modal-footer buttons.bind="['Cancel']"></modal-footer>
</modal>
测试2
我可以通过视图模板内的
click.delegate=“setModal('users')
调用它,但我不知道如何在该视图模板外实际使用它


很抱歉,我是这个框架的新手!

所以听起来你有一个默认的视图+视图模型,让我们称它们为app.html和app.js

在app.html中有模式标记:


在app.js中,您可以显示模式:

//打开模式
设置模态(模态){
this.contentModal=modal;
$('.modal').modal();
}
您的问题是“如何与其他视图模型共享setModal函数?”

您可以在容器中注册setModal函数。然后,您可以将其注入依赖于该函数的其他视图模型中:

app.js

从“aurelia框架”导入{inject,Container};//或“aurelia依赖项注入”
@注入(容器)
导出类应用程序{
建造师(容器){
//在容器中注册setModal函数
//在键“setModal”下。
container.registerInstance('setModal',this.setModal.bind(this));
}
//开放模态
设置模态(模态){
this.contentModal=modal;
$('.modal').modal();
}
}
some-other-view-model.js

从'aurelia framework'导入{inject};//或'aurelia依赖项注入'
@inject('setModal')//将setModal函数注入此视图模型
导出类SomeOtherViewModel{
构造函数(setModal){
//为绑定目的创建setModal属性
this.setModal=setModal;
}
}

还值得一看插件。您也可以将其包装在自定义属性中,这样就不必将setModal函数导入视图模型。

我建议在配置中使用
globalResources
函数

例如

export function configure(aurelia) {
  aurelia.use
    .standardConfiguration()
    .globalResources('scripts/global.js');

  aurelia.start().then( () => aurelia.setRoot('main.js'));
}

非常感谢您的款待,将查看自定义属性!