首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angular conditional ng-hide with ng-repeat

angular conditional ng-hide with ng-repeat
EN

Stack Overflow用户
提问于 2016-02-09 16:38:29
回答 1查看 391关注 0票数 0

我希望只为任务电子邮件的创建者等于当前用户的任务显示删除按钮。由于某些原因,我不能让条件函数与ng-show一起工作。我尝试了多种方法,但都没有成功。

代码语言:javascript
复制
    <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,与根作用域currentUser相等。这两种方法都不起作用。

代码语言:javascript
复制
    $scope.deletePermission(value)
    if(value==$rootScope.currentUser.email)
      //  if(value==$scope.challenge.email)
                    return true;
    else
                    return false;

解决方案:

哈哈,在我的数据库里不是challenge.email属性,而是ownerEmail。感谢你的帮助,至少我知道不需要括号了。

代码语言:javascript
复制
    <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函数也需要进行一些调整。谢谢你,街龟!(有没有办法突出显示你的名字?)

EN

回答 1

Stack Overflow用户

发布于 2016-02-09 23:53:57

表达式应如下所示:

代码语言:javascript
复制
<button ng-show="challenge.email == currentUser.email" class="btn btn-delete tooltip" ng-click="deleteChallenge(key)">
  <span>Delete this challenge</span>
</button>

没有必要用大括号,因为你已经在ng-show中了。

关于函数-你错误地定义了它,应该是这样的:

代码语言:javascript
复制
$scope.deletePermission = function(value){
  if(value==$rootScope.currentUser.email)
    return true;
  else 
    return false;
}

或者更好:

代码语言:javascript
复制
$scope.deletePermission = function(value){
  return (value==$rootScope.currentUser.email);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35287321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档