Angularjs方法工厂用于js文件

时间:2014-08-05 07:59:51

标签: jquery angularjs

我想在我的基本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 可能吗?

2 个答案:

答案 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();
});