Angular JS$location.path(..)未启动路由控制器
Angular JS $location.path(...) not firing route controller
所以我正在尝试使用更新表单提交上的路径
$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
中的一个错误吗?
所以我实际上需要在页面上的某个地方有一个ng-view
,以便整个系统工作。
看起来有点古怪,但它有效。
相关文章:
- Emberjs应用程序加载在除Index之外的所有路由上
- 我的jQuery插件参数没有正确启动,遇到了问题
- 正在使用$location.path(.)路由ng视图
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 从控制器返回后Ajax启动事件激发
- Meteor上的启动页面
- 如何防止网页加载后自动启动功能
- 如何从JavaScriptInterface启动Navigation Drawer
- window.on.scroll事件未启动
- 单击按钮后启动javascript提示
- Angular JS$location.path(..)未启动路由控制器
- 木偶:根据路由正则表达式启动和停止模块
- 在应用程序启动时生成路由 URL 列表,并插入到 MVC 中的 javascript 文件中
- Javascript:通过开机自检启动文件下载和路由文件
- 快速重新启动匹配路由-重定向
- AngularJS-在应用程序启动前处理路由
- 在特定的路由中启动ember
- 主干路由,应用程序在/profile内部启动
- Angular 2的默认路由逻辑在应用启动时不起作用