当我只有完整的网址路径时,我无法转换到其他视图状态。 ui-router说要使用$state.transitionTo
或$state.go
,但那些需要州名。
我尝试使用$location.url(path)
更改当前网址,但没有任何反应。
$location.url(path)
是正确的方式,我的设置有问题还是有其他方法可以做到?
以下是我对主页的配置:
$stateProvider.state(
{
name: 'home',
url: '^/',
templateUrl: "/home.html"
}
);
以下是该应用的配置。
cgTag.App.Config.Config = function($httpProvider, $locationProvider, $sce)
{
// Let CakePHP see $http requests as AJAX
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
// use HTML5 non-hash URLs
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');
// add all the CDN domains to the white list so that URLs are not blocked by Angular.
var cdn = cgTag.AppData["Domain"].replace(/^www\./, "http://s*.") + "/**";
$sce.resourceUrlWhitelist(['self', cdn]);
};
cgTag.Angular.config(['$httpProvider', '$locationProvider', '$sceDelegateProvider', cgTag.App.Config.Config]);
如果当前浏览器网址为http://www.cgtag.com/movies,则调用$location.url("/")
应该转到主页,但没有任何反应。
答案 0 :(得分:1)
我需要在致电$scope.$apply()
后致电$location.url(path)
。
可能是因为代码在keydown
事件处理程序中。
答案 1 :(得分:0)
您需要使用$location.path()
代替$location.url()