我希望只显示任务电子邮件的创建者等于当前用户的任务的删除按钮。出于某种原因,我无法使用ng-show来处理条件函数。 我尝试过多种方法都没有成功。
<li ng-repeat="(key, challenge) in challenges| orderBy: '-date'">
<!--<button ng-show="{{challenge.email}}=={{currentUser.email}}" class="btn btn-delete tooltip" ng-click="deleteChallenge(key)">-->
<button ng-show="deletePermission(challenge.email)" class="btn btn-delete tooltip" ng-click="deleteChallenge(key)">
<span>Delete this challenge</span>
</button>
<div class="info"><h2>{{challenge.name}}</h2> Creator: {{challenge.owner}} {{challenge.email}} {{currentUser.email}}
<!-- <span class="date">by: {{message.owner}}</span> <br>-->
<div class="date">{{challenge.date| date: "MMM d, yy, h:mm a"}}</div>
</div>
</li>
还有这个javascript函数尝试返回true,等于rootscope currentUser。这些都不起作用。
$scope.deletePermission(value)
if(value==$rootScope.currentUser.email)
// if(value==$scope.challenge.email)
return true;
else
return false;
解决方案:
哈哈,在我的数据库中,它不是challenge.email属性,而是ownerEmail。感谢大量的帮助,至少我知道不需要括号。 <button ng-show="challenge.ownerEmail == currentUser.email" class="btn btn-delete tooltip" ng-click="deleteChallenge(key)">
<span>Delete this challenge</span>
</button>
<button ng-show="deletePermission(challenge.ownerEmail)" class="btn btn-delete tooltip" ng-click="deleteChallenge(key)">
<span>Delete this challenge</span>
</button>
其中任何一个都有效。 javascript控制器中的deletePermission函数也需要一些调整。谢谢streetturtle! (有没有办法突出你的名字?)
答案 0 :(得分:0)
表达式应如下:
<button ng-show="challenge.email == currentUser.email" class="btn btn-delete tooltip" ng-click="deleteChallenge(key)">
<span>Delete this challenge</span>
</button>
大括号中没有必要,因为您已经在ng-show
。
关于函数 - 你错误地定义了它,应该是这样的:
$scope.deletePermission = function(value){
if(value==$rootScope.currentUser.email)
return true;
else
return false;
}
甚至更好:
$scope.deletePermission = function(value){
return (value==$rootScope.currentUser.email);
}