Javascript 在AngularJS中,如何使用动态值初始化提供程序
对于AngularJS非常陌生,并且正在查看本教程中的代码 所以在app.config中我们使用setTypewar,但是如果这个值是动态的呢?当页面加载时,该值将由服务器提供并在HTML数据属性中设置,如:Javascript 在AngularJS中,如何使用动态值初始化提供程序,javascript,angularjs,Javascript,Angularjs,对于AngularJS非常陌生,并且正在查看本教程中的代码 所以在app.config中我们使用setTypewar,但是如果这个值是动态的呢?当页面加载时,该值将由服务器提供并在HTML数据属性中设置,如: <div ng-app="app" ng-controller="AppCtrl" data-type="space"> {{ title }} </div> 提供程序可以这样做吗?是的,可以使用另一个提供程序方法,然后在配置中调用它。为了简单起见,您还可以使
<div ng-app="app" ng-controller="AppCtrl" data-type="space">
{{ title }}
</div>
提供程序可以这样做吗?是的,可以使用另一个提供程序方法,然后在配置中调用它。为了简单起见,您还可以使用factory方法,将factory注入配置并设置动态值 基本工厂:
app.module('getValue', [])
.factory('fetchValue', function($http) {
return {
getType: function(callback) {
return $http({
method: 'GET',
url: "whatever you have"
}).
success(function(data) {
callback(data);
});
}
};
});
在app.config中,您可以像
app.config(function (gameProvider,fetchValue) {
fetchValue.getType(function(data){
gameProvider.setType(data);
});
});
提供程序用于允许在配置阶段进行服务配置。因此,我认为这些对直接渲染到视图中的数据没有帮助。如果你不能提供这些值,我建议你写一个指令。这是一个很好的例子,但是如果所需的数据通过服务器端的逻辑呈现到视图中,它就没有帮助了。还有,为什么要使用回调注入而不是返回的承诺呢?正如您所说,这不是我应该尝试从视图中设置动态变量的地方。提供程序不用于此目的
app.config(function (gameProvider,fetchValue) {
fetchValue.getType(function(data){
gameProvider.setType(data);
});
});