【问题标题】:AngularJS: how to initiate a ng-click on loadAngularJS:如何在加载时启动 ng-click
【发布时间】:2020-06-19 19:03:34
【问题描述】:

我们在 ServiceNow 中有一个小部件,其中有显示预配置过滤器的按钮。这些按钮在点击时效果很好,但我们希望第一个按钮被点击,第一个过滤器在加载时应用。有没有办法在加载时启动它?我们尝试使用 ng-init,但无法让它工作。

<p><strong>Filters:</strong></p>
<button ng-if="options.show_preconfigured_filters=='true'"
        class="btn btn-outline-primary pull-left m-r-sm m-b-sm"
        ng-repeat="filters in data.preconfigured_filters | orderBy : 'order' track by $index"
        ng-click="c.applyFilter(filters);">
   <i class="glyphicon glyphicon-filter m-r-sm"></i>{
   {filters.title}}
</button>
<div class="clearfix"></div>
c.applyFilter = function(filter) {
    $scope.data.filter = filter.filter;
    c.appendQuery($scope.data.filter);
}

【问题讨论】:

    标签: javascript angularjs ng-init


    【解决方案1】:

    一种方法是在控制器中计算有序列表:

    var orderedList = $filter('orderBy')($scope.data.preconfigured_filters, 'order');
    
    c.applyFilter(orderedList[0]);
    

    这将执行用户通过单击第一项调用的相同功能。

    【讨论】:

    • 嗨@georgeawg,我刚刚尝试过,但得到一个控制台错误,提示无法读取未定义的属性'0'。当我将第一行包裹在 if($scope.datapreconfigured_filters) 周围时,我收到一条错误消息,提示无法读取未定义的属性“过滤器”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 2016-06-16
    • 2016-10-28
    • 2023-03-31
    相关资源
    最近更新 更多