AngularJS无法从控制器路由
AngularJS cannot route from controller
我使用的是像这样的angularJS路由
$routeProvider.
when('/wall', {controller:DashboardCtrl, templateUrl:'/chutirghonta_repo/contentpanel/views/dashboard.html'}).
when('/books', {controller:BooksCtrl, templateUrl:'/chutirghonta_repo/contentpanel/views/books.html'}).
when('/tests', {controller:TestsCtrl, templateUrl:'/chutirghonta_repo/contentpanel/views/tests.html'}).
when('/createbook', {controller:CreateBookCtrl, templateUrl:'/chutirghonta_repo/contentpanel/views/bookcreation.html'}).
when('/createbookpage', {controller:CreateBookPageCtrl, templateUrl:'/chutirghonta_repo/contentpanel/views/bookpagecreation.html'}).
otherwise({redirectTo:'/wall'});
;
现在,在我的一个控制器中,我必须重定向到另一条路线,所以我使用
$scope.add = function(){
window.location = "/testwebsite/contentpanel/#/createbook";
}
上面的代码不起作用。它让我回到默认路线,即
window.location = "/testwebsite/contentpanel/#/wall";
但是,令人惊讶的是,下面的代码可以工作,并将我引导到所需的页面
$scope.add = function(){
window.open("/testwebsite/contentpanel/#/createbook");
}
在我的视图层中,我有一个html页面,其中包含以下代码片段
<a href="#" ng-click="add()" class="btn btn-primary">Add New Book</a>
我没有主意了。window.open工作,但window.location不工作
而不是
window.location = "/testwebsite/contentpanel/#/createbook";
使用
$location.url('/createbook')
解决了它。
我更改了
<a href="#" ng-click="add()" class="btn btn-primary">Add New Book</a>
至
<button ng-click="add()" class="btn btn-primary">Add New Book</button>
此外,正如Arnaud Gueras所提到的,
最好使用
$location.url('/createbook');
而不是
window.location = '/testwebsite/contentpanel/#/createbook';
因为$location.url只指定路径的最后一部分,其中作为window.location指定整个路径(当我的主机更改时可能会更改)
相关文章:
- 未激发路由的控制器属性上的观察者
- Ember访问公共路由/控制器mxiin中的控制器属性
- 控制器操作的路由问题
- EmberJs-将所有来自子组件的操作路由到父组件,再路由到父控制器
- 控制器和支持路由之间的角度保持选择
- 角度.js - 识别通过路由或 ng 控制器调用的控制器
- Angularjs:路由后如何调用控制器函数
- AngularJS-有条件地为路由设置控制器
- Angular JS$location.path(..)未启动路由控制器
- AngularJS路由未绑定控制器
- 在不重新加载控制器的情况下更新路由
- Ember添加了对转换调用上下文(路由/控制器)的检查
- 使用ng-include调用控制器时AngularJS路由解析
- 动态添加/注册AngularJS控制器,无需路由
- Ember.js使用Router架构获取父路由的控制器
- 在Emberjs中设置从路由到控制器的数据错误
- 余烬中嵌套路由的控制器/路由约定
- AngularJS无法从控制器路由
- 通过聚合物核心页组件指定默认的熨斗控制器路由(内部元素)
- 安贝& # 39;需要# 39;属性不能工作,除非你先访问所需的控制器路由