我试图将ngRepeat与ngIf或ngShow一起使用。它只是不会工作..我试图只显示那些匹配"海报"和"观众" id所以用户只能看到他/她自己的帖子。我使用meanJS。我正在研究指令,因为我不知道那是不是我的遗失。
<div class="col-xs-12 col-sm-4 col-md-3 col-lg-3 extraSpaceList text-center" data-ng-repeat="motor in motorsCtrl.motors | filter:searchText | filter:searchFilter">
<div ng-if="((authentication.user) && (authentication.user._id == motor.user._id))">
<a class="list-group-item" ng-click="motorsCtrl.modalUpdate('lg', motor)">
<div class="bg-info">
<h4 class="list-group-item-heading" data-ng-bind="motor.title"></h4>
</div>
</a>
</div>
</div>
答案 0 :(得分:1)
要研究几件事。
第一:
如果您使用ng-if
,ng-if
将创建自己的范围。除非您使用ng-if
服务,否则无法从$parent
内访问父作用域模型。因此,您需要更改模型:motorsCtrl.modalUpdate('lg', motor)
变为$parent.modalUpdate('lg', motor)
,motor.title
变为$parent.motor.title
第二
您应该在这里开始使用ng-show
代替ng-if
。至少在您的应用呈现视图之前。但请调查一下。
您可能需要考虑以下内容(摘自@markovuksanovic):
ng-if
将从DOM中删除元素。这意味着所有处理程序或附加到这些元素的任何其他内容都将丢失。例如,如果将单击处理程序绑定到其中一个子元素,当ng-if
计算结果为false时,该元素将从DOM中删除,并且您的单击处理程序将不再起作用,即使在{{1稍后评估为true并显示元素。您需要重新附加处理程序。
ng-show / ng-hide不会从DOM中删除元素。它使用CSS样式来隐藏/显示元素(注意:您可能需要添加自己的类)。这样,附在孩子身上的处理程序就不会丢失。
{-1}}创建子范围,而ng-show / ng-hide不