我正在使用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。任何帮助都会有所帮助。
答案 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规范