gpt4 book ai didi

javascript - 过滤器变量未在 Controller AngularJS 中更新

转载 作者:行者123 更新时间:2023-12-03 11:45:17 24 4
gpt4 key购买 nike

嗨,我正在尝试围绕 angularjs 中过滤器的长度构建功能,尽管它在 View 中正常工作,但在 Controller 中变量似乎仍然过时......

当我单击下面的 div 时,它会过滤列表并调用 filterby 函数。新过滤列表的长度输出在 View 中正确更新。然而,在函数本身中,我有一个日志集,当我单击 div 时,它仍然显示旧的长度。

<div ng-repeat="filter in filters" ng-click="filterby(filter.filter_type)">{{filter.filter_type}}</div>

<ul>
<li ng-repeat="event in filtered = (events | filter:query) | orderBy:'-event_date' ">
<span >{{event.event_date}},{{event.event_name}}, {{event.event_venue}}, {{event.event_description}} </span>
</li>
</ul>

<br />Length of filtered items {{filtered.length}}

还有我的观点......

        $scope.filterby = function(filterby) {
if (filterby == 'ALL') {
$scope.query = '';
}
else {
$scope.query = filterby;

}
console.log($scope.filtered.length);
};

我的过滤器数据:

        $scope.filters = [
{'filter_type' : 'ALL'},
{'filter_type' : 'Macnass'}
];

编辑:好吧,这并不是说它根本不起作用,它只是显示以前的值,就好像它一直在后面单击一样,所以它与 View 中的变量在名单已制定。但我不确定如何确保 Controller 中的变量是最新值。

骗子:http://plnkr.co/edit/u7KpqYx8gDwaaXEvGeMn?p=preview

最佳答案

查看plunker

添加在下面

$scope.filtered = $filter('filter')($scope.events, $scope.query)

在 $scope.filterby 函数中

关于javascript - 过滤器变量未在 Controller AngularJS 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26084208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com