我想在我的基本js文件中调用工厂方法,但我不知道这是怎么做到的? 你能帮我吗 ?
例如我有这个工厂:
app.factory('rootService', function($rootScope,mainService){
function Factory() {}
Factory.mainService = new mainService();
Factory.prototype.load_root = function() {
$.post({
url: my_url,
success: function(i__json) {
alert(i__json)
}
});
};
return Factory;
});
我想在我的基本js文件中调用此方法load_root 可能吗?
答案 0 :(得分:0)
在“基本”js文件(或任何其他文件)中执行此操作:
app.run(function(rootService){
var instance = new rootService();
instance.load_root();
})
$ .post不会触发脏检查,因此如果不将其重写为$ http,您将遇到问题。
答案 1 :(得分:0)
你的工厂:
app.factory('rootService', function($rootScope, $http, mainService){
function Factory() {}
Factory.mainService = new mainService();
Factory.load_root = function() {
$http.post('my_url').then(onSuccess, onError);
function onSuccess(i__json) {
alert(i__json);
};
function onError(){
alert("can't get data");
};
};
return Factory;
});
现在你可以将rootService注入到控制器中:
app.controller('firstCtrl', function($scope,rootService){
//call load_root
rootService.load_root();
});