Javascript 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

我使用的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";
使用

解决了

我变了

<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';