所以我正在尝试使用
更新表单提交的路径$location.path('/search');
但是它没有触发注册到'/search'
的路线我也试过了尾随斜线。没什么,我也试过$scope.$apply
,但我只是得到了$apply already in progress
错误,所以肯定有一个范围。
为什么不会调用注册到路由的控制器或加载注册到它的templateUrl
。
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" : "/"
});
});
ng-submit
回调$scope.doSearchRequest = function (event, params) {
// Prevent the default action
event.preventDefault();
$scope.data = params;
$location.path('/search/');
};
修改
添加此
$scope.$on('$routeChangeStart', function(next, current) {
$console.log('$routeChangeStart', arguments);
});
在$location.path
调用之前显示路线未开始变化。这是Angular 1.2.5
中的错误吗?
答案 0 :(得分:3)
事实证明,我实际上需要在页面的某个位置设置ng-view
才能使整个系统正常工作。
似乎有点棘手,但它确实有效。