【问题标题】:Angular js trigger routingAngular js触发路由
【发布时间】:2013-08-06 18:13:09
【问题描述】:

我有一个重置链接,用于重置我的 Angular js 应用程序...

<a ng-click="resetApp()">reset</a>

我正在处理主控制器中的按钮按下...

$scope.resetApp = function(){

    if(confirm("You will lose data...")){

      $scope.user.reset();

      // not sure how to do this in more angular js way
      window.location = "/#";

    }

}

我不确定设置window.location 是否是正确的做事方式。它对我有用,但似乎不是正确的方法,而且我无法在网上找到它。

【问题讨论】:

  • +1...我之前只是在想这个...我的应用程序中有几个window.location = '/',但看起来很难看。

标签: javascript angularjs routing


【解决方案1】:

我一直在用这种所谓的AngularJS方式,至少路由是由AngularJS处理的,而不是浏览器直接处理的。

function Ctrl($scope, $location) {

    $scope.resetApp = function(){

        ...

        $location.url('/');
    }
}

路径是在Route Provider 中定义的,如下所示:

app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider.
        when('/', {
            templateUrl: 'index.html',
            controller: 'Ctrl'
        }).
...

【讨论】:

  • 您能否提供更多背景信息,或者指向何处可以找到更多相关信息的指针。我有对$location 的引用,但我无法以这种方式设置当前页面。如果我之后检查$location,它会为我构建一个不错的网址,包括协议和服务器名称等...但不更改页面。
  • 它使用routeProvider中定义的路径。
  • 如果您想将路径添加到现有 url,请使用 $location.path('/path_name');您的网址将如下所示:'www.your_url/#/path_name'
猜你喜欢
  • 2013-03-18
  • 2020-05-31
  • 2016-06-03
  • 2019-06-22
  • 2016-07-07
  • 1970-01-01
  • 2018-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多