在AngularJS中使用Helper

时间:2014-04-19 13:36:44

标签: angularjs angularjs-scope angular-scenario

我正在使用laravel和angularjs开发社交应用。

我有一种情况,当我使用帮助程序检查用户关系时。

 **Html**


     //showing users other info    

     <div ng-repeat="user in data">
     <a ng-click=checkuser(user.id,checkrelation(user.id))>
       {=checkrelation(user.id) =} <a>
     </div>

 **js**

 //scope to hold user's data
 //i get this info using service for the visiting user
 $scope.data = myservice.userinfo();

 //scope to hold users current subscriber info using service
 $scope.allsubscriber = myservice.usersubscriber();

 //check user relation and return text accordinglly
 $scope.checkrelation = function(id){
 //if user found
 if($scope.allsubscriber.indexOf(id) != 1){
  return "fellow";
 }else{
 // not found
 return "subscribe";
}

}

$scope.checkuser = function(id,text){
   if(text === "subscribe"){   
  //make ajax call to save user subscriber
  //here i want to reload the user status which is checked by helper
 }else 

 return false;

  }
  } 

现在,如果用户不是当前用户的朋友,那么它将相应地添加。现在问题是我如何反映{= checkrelation(data.id)=}中的更改,因为用户点击它而不进行页面重新加载,因为在页面加载我凸轮看到文字上的chnages。任何帮助都会有所帮助。

1 个答案:

答案 0 :(得分:0)

Angular模板为您提供$event,您可以将其传递给回调。这样您就可以执行$event.preventDefault(),这将覆盖默认值&lt; a /&gt;点击。

示例:

<a href="#/whatevz" ng-click="myFunc(thing1, $event)">link text</a>

然后在你的控制器中:

$scope.myFunc = function(thing, e){
   e.preventDefault();
   /*do stuff with thing*/
}

修改preventDefault()是DOM规范

的一部分