如何在angularJS中更改基本URL

时间:2014-09-03 07:14:06

标签: angularjs

我陷入了这种情况。

我的登录页面中有一个开关,我想相应地重定向我的服务以进行授权。

我想在检查一些条件后动态加载我的服务,当我第一次启动我的应用程序时。但是因为我们有ng-app,所以我们需要在开始时注入所有模块。我的基本网址是在应用启动之前设置的。是否有可能在条件下更改我的基本网址?

在启动应用程序时,在启动第一页(即登录页面)之前分配基本URL。我的登录页面有一个开关,如果是,我需要设置不同的基本网址。但由于基本网址已设置且控件未再次出现在此模块中,因此我无法有条件地更改它。

这是我的service.js

angular.module('sampleService', ['ngResource'])
       .factory('sample', function ($resource, $rootScope) {
           $rootScope.serviceUrl = "http://......";
               ...
       });

这是我的app.js

var app = angular.module("sampleApp", ["sampleService"]);

这就是我使用$ routeProvider

的方式
app.config(["$routeProvider", function ($routeProvider, $locationProvider) {
    ...
}]);

我想有条件地更改我的服务网址:

if(myflag)
    $rootScope.serviceUrl = "url1";
else
    $rootScope.serviceUrl = "url2";

我希望这会让我知道我想做什么以及我在做什么。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我想你在你的应用程序中使用ngRoute,对吗?

也许您应该调查控制状态的uiRouter。而你所描述的可以属于这一类。

https://github.com/angular-ui/ui-router

另请阅读this Stackoverflow content中两者之间的差异。

答案 1 :(得分:1)

是的uiRouter是动态页面加载的最佳解决方案

这是一个关于如何在代码中使用ui-sref的简单PDF, Simple Example