AngularJS无法从控制器路由

时间:2016-01-05 17:44:17

标签: javascript angularjs ngroute

我正在使用这样的angularJS路由

$scope.add = function(){
    window.location = "/testwebsite/contentpanel/#/createbook";
}

现在,在我的一个控制器中,我必须重定向到另一条路线,所以我正在使用

window.location = "/testwebsite/contentpanel/#/wall";

上述代码不起作用。它将我带回默认路线,即

$scope.add = function(){
    window.open("/testwebsite/contentpanel/#/createbook");
}

但是,令人惊讶的是,下面的代码可以运行并引导我进入所需的页面

<a href="#" ng-click="add()" class="btn btn-primary">Add New Book</a>

在我的视图图层中,我有一个带有此代码段的html页面

{{1}}

我没有想法。 window.open有效但window.location不起作用。

2 个答案:

答案 0 :(得分:0)

而不是

window.location = "/testwebsite/contentpanel/#/createbook";

使用

$location.url('/createbook')

答案 1 :(得分:0)

解决了它。

我改变了

<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指定整个路径(当托管更改时可能会更改)