我需要在开始时将参数传递给 Aurelia。根据传递的值,应用程序将具有不同的状态。此应用程序注入(inject)到使用 PHP 构建的页面上,因此最好的方法是使用 PHP 代码指定的参数启动它。有什么办法吗?
最佳答案
您可以在普通 JS 中访问的任何数据都可以使用 Aurelia 访问。也许您可以使用 data-*
属性来做到这一点?当您通过执行 aurelia-app="main"使用
hostmain
文件时,您传递给配置方法的框架实例有一个 属性,它是框架附加到的元素。您可以在此元素上放置
data-*属性,然后通过此元素的
dataset` 属性访问它们 (IE11+ https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset )。
你的 index.html
或等价物可能有这样的东西:
<body aurelia-app="main"
data-param1="value1"
data-param2="value2">
您的 main.js
然后可以轻松访问这些值:
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging();
aurelia.container.registerInstance('serverData',
Object.assign({}, aurelia.host.dataset))
aurelia.start().then(() => aurelia.setRoot());
}
这是一个可运行的例子:https://gist.run/?id=55eae2944b00b11357868262e095d28c
如果您在属性值周围使用单引号,您甚至可以将 JSON 放入数据属性中:https://gist.run/?id=57417139aa8c0c66b241c047efddf3dd
编辑:我根据 Jeremy Danyow 发布的类似答案改进了这个答案。两个链接的要点也已更新。
关于javascript - Aurelia 以 PHP 传递的参数开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40024102/