Javascript AngularJS无法从控制器路由
我使用的angularJS路由如下Javascript AngularJS无法从控制器路由,javascript,angularjs,ngroute,Javascript,Angularjs,Ngroute,我使用的angularJS路由如下 $routeProvider. when('/wall', {controller:DashboardCtrl, templateUrl:'/chutirghonta_repo/contentpanel/views/dashboard.html'}). when('/books', {controller:BooksCtrl, templateUrl:'/chutirghonta_repo/contentpanel/views/book
$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";
使用
解决了
我变了
<a href="#" ng-click="add()" class="btn btn-primary">Add New Book</a>
而不是
window.location = '/testwebsite/contentpanel/#/createbook';
因为$location.url只指定路径的最后一部分,而as window.location指定整个路径(当我的主机更改时可能会更改)使用$location.url('createbook')
无法解决此问题。但将锚更改为按钮是可行的
<button ng-click="add()" class="btn btn-primary">Add New Book</button>
$location.url('/createbook');
window.location = '/testwebsite/contentpanel/#/createbook';