更改工厂AngularJS中变量的值

时间:2014-07-23 16:42:16

标签: angularjs restangular

使用AngularJS中的工厂可以更改TokenRestangular URL值。

例如,我可以这样做:

 .factory('projectFactory', ['TokenRestangular', function (TokenRestangular) {
        var factory = {
            projects: []
        };

        factory.get = function () {
            return
             resource = TokenRestangular.all('project');
               resource.getList()
                .then(function (project) {
                    factory.project = project;
                    return factory.project;

                })
        };
        return factory;
    }]);

并在我的控制器中更改资源的值,即

   var projects = projectFactory.get()
   projects.TokenRestangular.all('a_different_url');

希望这是有道理的。

1 个答案:

答案 0 :(得分:1)

可以使用服务,但不能使用工厂。一个服务被创建为单例,因此每次注入它时,您将获得相同的实例。有了工厂,你就会得到一个新工厂。

您应该能够拥有如下的简单服务并将其注入您的控制器:

myApp.service('SimpleService', function() {
    this.localValue = 0;
    this.setLocalValue = function(newValue) {
      this.localValue = newValue;
    }
});

未经测试但应该给你足够的时间继续!