【问题标题】:ng-click - after click do function and redirectng-click - 点击后执行功能并重定向
【发布时间】:2015-04-19 11:49:24
【问题描述】:

我有小问题。

我想创建带有重定向的 ng-click,但在重定向之前我需要发布一些数据。

我的html代码:

<a href="/test" ng-click="updateData($event)">Go</a>

我的角度 updateData 函数:

$scope.updateData = function($event){

   $event.preventDefault();

   $http.post(someAddress, $scope.data)
      .success(function(){
          // on success redirect
      });
   };

我发现了类似 scope.$eval(clickAction); 的东西,但我不知道应该如何使用它。

我不能只使用没有 JS 的重定向,因为我有 2 种不同的形式。

【问题讨论】:

    标签: javascript angularjs redirect


    【解决方案1】:
    <a href="/test" ng-click="updateData($event, this.href)">Go</a>
    
    
    $scope.updateData = function($event, loc){
       $event.preventDefault();
    
       $http.post(someAddress, $scope.data)
          .success(function(){
              // on success redirect
              location.href = loc;
          });
       };
    

    【讨论】:

    • 谢谢你们。它解决了我的问题。
    【解决方案2】:

    你应该从JS函数重定向而不是依赖href,在这种情况下不需要$event.preventDefault();

    标记

    <a href="" ng-click="updateData()">Go</a>
    

    代码

     $scope.updateData = function(){
        $http.post(someAddress, $scope.data)
        .success(function(){
          // on success redirect
          $location.path('/test'); //to redirect from here
        });
     };
    

    【讨论】:

    • Native JS 总是比任何框架辅助函数都快。
    • 我不这么认为..而不是这样做..我会遵循更角度的编码方式..
    【解决方案3】:

    对于完全重定向,请尝试以下操作:

    location.assign("http://someuri.com");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-06
      相关资源
      最近更新 更多