在 angular 中是否可以在不刷新页面的情况下重新实例化服务和工厂?

Is it possible to reinstantiate Services And Factories without refreshing page in angular?

我需要在 services.For 示例中动态更改 domainUrl 我需要通过选择特定组织来获取用户列表,并且 url 应该相应地更改。

app.factory('User', ['$resource', function($resource) {
    var baseUrl = 'http://foo.com/users'
    return $resource(baseUrl + '.json');
}])

我需要 baseUrl“http://example.com”来选择另一个组织。我不想刷新页面。

试试这个:

app.factory('User', ['$resource', function($resource) {
    return function(baseUrl) {
        baseUrl = baseUrl || 'http://foo.com/users';
        return $resource(baseUrl + '.json');
    }
}])

现在 User 工厂将 return 一个函数,您可以使用 baseUrl 调用该函数来实例化资源。

app.controller('exampleController', function(User) {
    var example1 = User('http://www.example1.com');
    var example2 = User('http://www.example2.com');
})