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

标签 javascript angularjs filter module angularjs-scope

我有一个非常奇怪的问题。制作了自定义 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:nscodeinput},但我得到的是:

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]

这是node的内容,来自ng-model。我实在不明白为什么会出现这种情况?

我只是将对象传递给我的过滤器,但无论我设置什么参数,它都会不断获取节点元素。

最佳答案

解决了:

    return function (array, input) {

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

关于javascript - 自定义 AngularJS 过滤器忽略我的参数并接收其他一些scope.data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33827257/

相关文章:

javascript - 使用 $http 获取数据以与自定义服务一起使用

javascript - AngularJS Controller 变量未传递给子指令

python - 如何按两列值之间的行对 pandas 数据框进行切片?

MATLAB:使用 FFT/IFFT 和 IIR 滤波器在频域中进行滤波

php - 从数组中删除其值与指定字符串匹配的元素

javascript - 在 Ext.button.Split 按钮中显示所选值

javascript - 为什么 javascript 的 ES6/Harmony Set 对象会为键/值/条目方法返回空对象?

javascript - 请有人解释一下 eloquent 中这个示例的绑定(bind)函数的工作原理

javascript - 如何在提示框插入数据后链接到另一个页面

django - 在 Django 后端使用 Angular JS 路由的最佳实践方法是什么?