我正在使用MVC和Angular2作为Web应用程序。我需要将一个值从我的控制器传递到索引页面,从那里开始Angular2。现在我需要从角度使用Typescript读取View包中的值。我能这样做吗?我搜索了很多但没有得到任何信息!
答案 0 :(得分:2)
你基本上有两个选择。
选项#1:获取请求
从根组件(使用服务)发出GET请求,这将获取必要的配置数据。
选项#2:嵌入JSON有效负载
使用此选项,您可以将JSON数据直接嵌入到登录页面中。为了能够从Angular应用程序访问此数据,您需要将其存储为全局变量。然后从应用程序中检索数据对象将非常简单。唯一的,你应该避免在这种情况下直接读取全局变量,只是因为它容易出错。使用简单的AppConfig
服务抽象全局访问更好。好处是,以后您可以更改数据源(如果您决定切换到上面的GET请求选项)而没有太多麻烦。
所以第一步是将JSON写入HTML,也许是这样:
<script>
var __appConfig = JSON.parse('@Html.Raw(appConfig)');
</script>
我不是C#专家,所以它可能不是最佳的。
然后帮助服务看起来像这样:
export class AppConfig {
private _config = window.__appConfig
getConfig() {
return this._config
}
}
选择哪一个?我想说这取决于你想传递给Angular 2 app的数据类型。在许多具有大JSON有效负载的情况下,使用GET请求方式确实很有意义。另一方面,对于简单变量或小块数据,我更喜欢将数据直接嵌入到HTML中。它还可以避免再发出一个AJAX请求。