javascript - 如何将(调试与发布)args 传递给 Asp.Net MVC 中的 Aurelia 应用程序

标签 javascript asp.net-mvc-4 aurelia

您将如何将 Debug 与 Release 参数传递给 Aurelia 应用程序?

就我而言,我在 MVC 应用程序中安装了 Aurelia。我想根据我的 web.config 值为 Aurelia 配置一些参数(URL 等)。

有什么办法可以做到:

<script src="~/Aurelia/jspm_packages/system.js"></script>
<script src="~/Aurelia/config.js"></script>
<script>
   System.import('aurelia-bootstrapper', @this.ViewBag.MyArgs);
</script>

哪里 this.ViewBag.MyArgs 会包含从 MVC 加载的参数?

然后我可以在我的 Aurelia 服务中使用这些参数,例如

this.httpClient.configure(x => {
   x.withBaseUrl(globalArgs.myBackendUrl);
});

最佳答案

将您的配置字符串注册为模块:

index.html

<script src="~/Aurelia/jspm_packages/system.js"></script>
<script src="~/Aurelia/config.js"></script>
<script>
   // register a module named "my-args" that has a single export:  "MyArgs" whose value is whatever the viewbag.MyArgs contains...
   System.set('my-args', System.newModule({ MyArgs: '@this.ViewBag.MyArgs' }));

   // standard bootstrapping logic...
   System.import('aurelia-bootstrapper');
</script>

此处假设 razor 会将 { MyArgs: '@this.ViewBag.MyArgs' } 扩展为 @this.ViewBag.MyArgs 返回的内容。 . 例如 { MyArgs: 'debug=true' } 或其他东西......你必须尝试一下那部分。

然后在您的 javascript 代码中,您将能够像这样访问 args:

import {MyArgs} from 'my-args';

这是一个有效的 plunker:

http://plnkr.co/edit/Scu8bN?p=preview

这是关于 System.set API 的文档:

https://github.com/systemjs/systemjs/blob/master/docs/system-api.md#systemsetmodulename-module

关于javascript - 如何将(调试与发布)args 传递给 Asp.Net MVC 中的 Aurelia 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33781268/

相关文章:

javascript - 我应该为 ECMAscript2015 使用 .es6 文件扩展名吗?

asp.net-mvc-4 - MVC 4 Form - 提交按钮不做任何事情

asp.net-mvc - Web api 自定义路由

javascript - aurelia 中使用 repeat.for 绑定(bind)自定义元素的正确方法是什么

Aurelia:如何在现有 html 中注入(inject)组件模板?

javascript - 如何引用名称中带有 $(美元)符号的 javascript 对象

javascript - 使用闭包净化通过递归构建对象的函数——JavaScript

javascript - 刷新iframe错误

c# - 为什么 kendo Grid 不生成任何 html 输出并且没有服务器端/客户端错误?

javascript - Aurelia - 根据选择选项显示/隐藏元素