自定义AngularJS过滤器忽略我的参数并接收一些其他scope.data

custom AngularJS filter ignores my parameter and receive some other scope.data

本文关键字:其他 data scope 过滤器 AngularJS 参数 我的 自定义      更新时间:2023-09-26

我有一个非常奇怪的问题。定制AngularJS过滤器:

这是其中的一部分:

angular.module('filterModule', []).
    filter('nscode', function () {
        return function (input) {
            console.log('input:');
            console.log(input);
           (...)

然后我在这里称这个过滤器:

<ol ui-tree-nodes="" data-nodrop-enabled="false" ng-model="node.i" collapsed="true" data-nodrag ng-class="{hidden: collapsed}">
    <li ng-repeat="node in node.i | nscode:{data: scope.data, code: nscodeinput}" ui-tree-node data-nodrag 
        collapsed="true"
        ng-show="visible(node)"
        ng-include="'nodes_renderer.html'">
    </li>
</ol>

您可能会认为我的nscode筛选器将接收{data:scope.data,code:ncodeinput},但我得到的却是:

input:
filterModule.js:8 [Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]

这是节点的内容,来自ng模型。我真的不明白为什么会发生这种事?

我只是想把一个对象传递给我的过滤器,但不管我设置了什么参数,它都会一直获取node元素。

解决了它:

    return function (array, input) {

出于某种原因,即使我没有要求,它也会发送ng模型的数组。所以我的过滤器需要两个参数。第二个接收我发送到过滤器的参数。