【问题标题】:using ngIf with ngRepeat使用 ngIf 和 ngRepeat
【发布时间】:2015-05-21 20:30:13
【问题描述】:

您好,我正在尝试根据使用 ng-if 的代码使用两种类型的 ng-repeat 语句。不知何故,它不工作。 代码:

<div ng-if="orderby === '0'">
                <div  ng-repeat="user in users  | filter:search"></div>
            </div>
            <div ng-if="orderby === '1'">
                <div  ng-repeat="user in users  | filter:search| orderBy:'-timestamp'"></div>
            </div>

我有两个控制器,它们使用相同的模板。在一个模板中,我设置了 $scope.orderby = '0' 的值。在这个模板中,我想使用ng-repeat 而不使用orderBy,反之亦然。 这行不通。还有其他方法可以执行此类功能吗?

【问题讨论】:

  • 也许您可以比“它不起作用”更具体,因为这将有助于回答者更好地理解您的问题。

标签: javascript angularjs angularjs-ng-repeat ng-repeat angular-ng-if


【解决方案1】:

创建对象:someObjectName.orderby,而不是原始变量 orderby。 您的绑定将是:

<div ng-if="someObjectName.orderby === '0'">
                <div  ng-repeat="user in users  | filter:search"></div>
            </div>
            <div ng-if="someObjectName.orderby === '1'">
                <div  ng-repeat="user in users  | filter:search| orderBy:'-timestamp'"></div>
            </div>

ng-repeat 有另一个作用域,ng-repeat 之外的orderby 变量与orderby 内部ng-repeat 作用域中的变量不同。

阅读这篇文章了解更多关于作用域的信息:https://github.com/angular/angular.js/wiki/Understanding-Scopes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多