所以我尝试使用更新表单提交上的路径
$location.path('/search');
但它没有触发注册的路线'/search'
我也尝试过使用尾部斜杠。没办法,我也试过了$scope.$apply
但我刚刚得到$apply already in progress
错误所以肯定有一个范围。
为什么这不会调用注册到路由的控制器或加载templateUrl
注册到它。
Router
App.config(function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true).hashPrefix('!');
$routeProvider
.when("/", {
"controller" : "HomeController",
"templateUrl" : "templates/home.html"
})
.when("/search", {
"controller" : "SearchResultsController",
"templateUrl" : "templates/search-results.html"
})
.when("/search/:location", {
"controller" : "SearchLocationController",
"templateUrl" : "templates/search-results.html"
})
.otherwise({
"redirect" : "/"
});
});
Form ng-submit
打回来
$scope.doSearchRequest = function (event, params) {
// Prevent the default action
event.preventDefault();
$scope.data = params;
$location.path('/search/');
};
edit
添加这个
$scope.$on('$routeChangeStart', function(next, current) {
$console.log('$routeChangeStart', arguments);
});
就在之前$location.path
调用显示路线没有开始改变。这是一个错误吗Angular 1.2.5
?