对AngularJS很新,并查看本教程中的代码http://www.thinkster.io/angularjs/eIaGNOAlOk/angularjs-providers。
var app = angular.module("app",[]);
app.provider("game", function () {
var type;
return {
setType: function (value) {
type = value;
},
$get: function () {
return: {
title: type + "Craft"
};
}
};
});
app.config(function (gameProvider) {
gameProvider.setType("War");
});
app.controller("AppCtrl", function ($scope, game) {
$scope.title = game.title;
});
所以在app.config中我们使用setType(" war")但是如果这个值是动态的呢?当页面加载时,值将由服务器提供并设置在HTML数据属性中,如:
<div ng-app="app" ng-controller="AppCtrl" data-type="space">
{{ title }}
</div>
提供者可以吗?
答案 0 :(得分:0)
是的,可以使用其他提供程序方法完成,然后在配置中调用它。为简单起见,您还可以使用工厂方法并在配置中注入工厂并设置动态值
基本工厂:
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);
});
});