gpt4 book ai didi

javascript - Angular JS $location.path(...) 不触发路由 Controller

转载 作者:数据小太阳 更新时间:2023-10-29 05:29:59 24 4
gpt4 key购买 nike

所以我尝试更新表单提交时使用的路径

$location.path('/search');

但它不会触发注册到 '/search' 的路由 我也尝试过使用尾部斜杠。没什么,我也试过 $scope.$apply 但我只是得到了 $apply already in progress 错误所以肯定有一个范围。

为什么这不会调用注册到路由的 Controller 或加载注册到它的 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 中的错误吗?

最佳答案

所以事实证明我实际上需要在页面上的某个地方有一个 ng-view 才能使整个系统正常工作。

看起来有点古怪,但它确实有效。

关于javascript - Angular JS $location.path(...) 不触发路由 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20606833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com