好的,所以我在 ASP.Net SPA 项目的 _Layout.cshtml 中有一个常量变量,我想传递它们以便 Angular 可以访问这些变量。
我该怎么做?
例如,这是我要传输的一个值。
var lenderValues = @Html.Action("GetLenderDropdownValues", "Dropdown");
这是我的第一个 app.component 启动的方式。
<my-rite-ui>Loading...</my-rite-ui>
我知道如何在 AngularJS 1.x 中只使用常量并在需要的地方注入(inject)该常量,但无法在 Angular 中解决。
任何帮助将不胜感激。
最佳答案
这取决于你到底想做什么,但我看到两种可能性:
- 定义一个常量
导入主模块时需要传递这个常量。而不可能在 import
本身上执行此操作。您可以导入一个函数并使用参数调用它。
这是引导您的应用程序的主要模块的示例:
import {bootstrap} from '...';
import {provide} from '...';
import {AppComponent} from '...';
export function main(lenderValues) {
bootstrap(AppComponent, [
provide('lenderValues', { useValue: lenderValues })
]);
}
然后您可以像这样从您的 HTML 主页导入它:
<script>
var lenderValues = @Html.Action("GetLenderDropdownValues", "Dropdown");
System.import('app/main').then((module) => {
module.main(lenderValues);
});
</script>
你的 lenderValues
可以像组件一样注入(inject)所有元素:
@Component({
(...)
})
export class SomeComponent {
constructor(@Inject('lenderValues') lenderValues) {
}
}
- 在
my-rite-ui
元素上定义一个参数
您可以在此级别指定参数,但无法对其进行评估。所以它有点乏味,因为您需要使用 JSON.stringify
将其序列化为字符串,从组件中相应的 ElementRef
获取元素并使用 反序列化它JSON.parse
.
然后您可以将数据添加为提供者。
关于asp.net - 将常量值从 _layout.cshtml 传递给 Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37312018/