Angular:使用$ location.path()而不是href

时间:2015-04-13 12:07:33

标签: javascript html angularjs ionic-framework

我最近开始在$location.path()个函数中使用ng-click,而不是简单地引用href标记的a内的路径。 我这样做的原因是:

  • 优先选择所有逻辑,包括路径导航移出我的视图(这可能有点极端)。
  • 对于多个html模板引用相同控制器的罕见情况,我可以更改$location.path()一次,而不必记住更新每个模板中的相应href。

所以而不是:

<a class="button button-balanced" href="/signup">Sign up</a>

我有:

<button class="button button-balanced" ng-click="goToSignup()">Sign up</button>

并在我的控制器中:

$scope.goToSignup = function() {
    $location.path('/signup');
}

我的问题是,以这种方式设置我的Angular应用程序有什么缺点吗? (注意:我主要是建立离子混合移动应用程序)

2 个答案:

答案 0 :(得分:0)

  • 优先选择所有逻辑,包括路径导航移出我的视图(这可能有点极端)。

您可以使用相同链接按钮

来导航所有逻辑和路径
<a href="/signup" class="button button-balanced" ng-click="SignUpFunc()>Sign Up</a>

a标签首先执行click功能,然后执行href调用。所以你可以通过链接按钮来做到这一点。

  • 对于多个html模板引用相同控制器的罕见情况,我可以更改$location.path()一次,而不必记住更新每个模板中的相应href。

如果使用菜单选项,则可以使用链接按钮 但如果您将一个控制器导航到另一个控制器,那么您应该使用 $location.path('/signup');

答案 1 :(得分:-1)

我在项目中也使用了类似的逻辑。对我来说工作正常。

<button class="button" ng-click="go('view')">Next Page</button>

    $scope.go = function ( path ) {
        $location.path( path );
    };