当我尝试更改控制器中的位置时,它会加载服务器的根目录,而不是某个页面:
'use strict';
eventsApp.controller('TestController',
function TestController($scope, $location){
console.log('test comes here!');
$scope.makeTest = function(){
$location.url('/test');
}
});
我有这样的路由器:
'use strict';
var eventsApp = angular.module('eventsApp', ['ngResource','ngSanitize'])
.config(function($routeProvider, $locationProvider){
$routeProvider
.when('/test',{
templateUrl:'templates/test.html',
controller:'TestController'
}).otherwise({
templateUrl:'templates/default.html',
controller:'DefaultController',
redirectTo:''
});
$locationProvider.html5Mode(true);
});
在我的index.html中,我设置了指令
<base href="/">
似乎每次它实现否则。但是,如果我使用
location.href = '/test';
而不是
$location.url('/test');
,然后它的工作原理。 我不知道这种行为。你呢?
答案 0 :(得分:3)
虽然这个问题与状态有关,但是如何导航到另一个网址:
$location.url(myUrl);
这应该可行,但我已经看到了一些问题 - 即它会调用代码,但不会去任何地方。如果是这种情况,您也可以使用$window
服务,如下所示:
$window.location.assign(url);
答案 1 :(得分:1)
如果您已经有$scope.apply()
投放,请考虑使用$timeout
作为解决方法。
不完美,但应该完成这项工作。 更好的情况:设置一个全局变量,你设置为&#34;已加载&#34;一旦你的api完成加载,然后更新你的函数/调用范围相关的操作。