gpt4 book ai didi

javascript - AngularJS - 来自 Controller 的过滤器逻辑有效,未正确显示

转载 作者:行者123 更新时间:2023-11-30 17:29:33 25 4
gpt4 key购买 nike

我正在尝试使用我在 Controller 中编写的过滤器来使用 ng-options 缩小选择列表的范围。过滤器逻辑正常工作,但未显示结果。

这是我的 Controller 的相关部分:

        $scope.ESGFilter = function() {
var esg;
var filteredESGs = [];

// LOGIC GOES HERE TO POPULATE THE filteredESGs ARRAY

console.log(filteredESGs);
return filteredESGs;
}]);

这是 HTML:

    <select class="input-block-level" id="inputESG" name="inputStoch"
ng-model="Run.ESG"
ng-options="econ.Id as econ.Name for econ in econData | filter:ESGFilter" size="5">
</select>

我怀疑问题出在 HTML 中的“filter:ESGFilter”...我不明白为什么我从函数返回的数组没有显示。 Controller 中的函数确实被调用并且逻辑正常。

作为引用,console.log 输出:[Object, Object]——当我展开这些对象的属性时,我确认它们就是我想要的。然而,选择列表显示了所有四个对象(我从四个对象的数组中过滤下来)。

最佳答案

您的过滤器需要返回真/假语句。像这样写你的过滤器:

$scope.ESGFilter = function(item) {
// if you want to keep the item return true, else false
};

这是有效的,因为 ngOptions 获取数组中的每个项目并将其传递给过滤器函数。您的示例不起作用,因为它返回一个空数组,该数组将始终解析为真值,并且所有对象都将被接受而不被过滤。

这是一个小插曲:

http://plnkr.co/edit/RfKMcXDKy1m1EGyoEpS7?p=preview

关于javascript - AngularJS - 来自 Controller 的过滤器逻辑有效,未正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23432050/

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