【问题标题】:angular conditional ng-hide with ng-repeat带有 ng-repeat 的角度条件 ng-hide
【发布时间】:2016-02-10 01:02:25
【问题描述】:

我希望只为任务电子邮件的创建者等于当前用户的任务显示一个删除按钮。出于某种原因,我无法让条件函数与 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 函数也需要一些调整。谢谢街龟! (有没有办法突出你的名字?)

【问题讨论】:

  • 你能在 plunker 中做一个代码示例吗?更容易调试

标签: ng-repeat ng-show


【解决方案1】:

表达式应如下:

<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);
}

【讨论】:

    猜你喜欢
    • 2013-08-06
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多