我想在配置部分访问自定义提供程序的功能。怎么做?
MasterApp.js
var masterapp= angular.module("masterapp",[]);
masterapp.value('homeurl', 'workbench'); // value will be dynamically generated.
masterapp.provider('masterprovider', function() {
this.$get = function(homeurl) {
return {
makeurl: function(userFileLoc) {
return homeurl+userFileLoc;
}
}
};
});
userapp.js
//接下来是错误的方法。怎么做到这一点?
var userApp= angular.module('userApp',[
'ngRoute',
'masterapp'
]);
userApp.config(['$routeProvider', 'masterprovider'
function($routeProvider, masterprovider) {
$routeProvider.
when('/', {
templateUrl: masterprovider.makeurl('something.html'),
controller: 'myCtrl'
}).
otherwise({
redirectTo: '/'
});
}]);
答案 0 :(得分:2)
您正尝试访问Factory方法。试试这个:
masterapp.provider('masterprovider', function() {
var homeurl = "workbench";
this.makeurl = function(userFileLoc) {
return homeurl + userFileLoc;
};
this.$get = function() {
return {
otherFactoryFn: function() {}
}
};
});
提供者配方在语法上定义为自定义类型 实现$ get方法。这个方法就像工厂一样 我们在工厂配方中使用的那个。实际上,如果你定义一个工厂 recipe,一个空的Provider类型,$ get方法设置为你的 工厂功能是在引擎盖下自动创建的。