angularjs从工厂返回数组

用户名

我正在尝试重构我的有角度的应用程序。因此,我引入了一个包括工厂服务的service.js文件。代码是这样的:

app.factory('Categorien', function() {
var Categorien = {
    populate: function () {
        var _categorien = [];
        var bedragok = (function bedragOk(categorie) {
            return categorie.bedragAf > 0;
        });

        var categorienFilter = $scope.categorien.filter(bedragok);
        categorienFilter.forEach(function(item) {
            var dataArray = [];
            dataArray.push(item.omschrijving);
            dataArray.push(item.bedragAf);
            _categorien.push(dataArray);
        });
        return _categorien;
    }
};
return Categorien;
});

在控制器中,我通过以下方式调用它:

        $scope.dataTable = Categorien.populate();

因此,dataTable期望一个数组,该数组应填充函数。

我做错了,希望您能帮助我。

谢谢!

一只狼

我认为如果只想进行过滤,则可以使用自定义过滤器。然后您的代码可能类似于下面的演示。

如果您想使用工厂,则可以将数组传递给populate函数,例如$scope.dataTable = Categorien.populate(['your', 'array', 'here']);,也可以使用其他方法将数据添加到工厂。如评论中所述,$scope不应传递给工厂。

以下演示(或在该小提琴中)展示了如何使用自定义过滤器:

angular.module('demoApp', [])
	.controller('MainController', MainController)
    .filter('categoryFilter', function() {
        return function(input) {
            var _categorien = [];
            var bedragok = (function bedragOk(categorie) {
                return categorie.bedragAf > 0;
            });

            var categorienFilter = input.filter(bedragok);
            categorienFilter.forEach(function(item) {
                var dataArray = [];
                dataArray.push(item.omschrijving);
                dataArray.push(item.bedragAf);
                _categorien.push(dataArray);
            });
            return _categorien;
        }
	});

function MainController() {
	this.data = [
        {
            	bedragAf: 100,
            	omschrijving: 'test'
        },
        {
            	bedragAf: -100,
            	omschrijving: 'test neg. value'
        },
        {
            	bedragAf: 100,
            	omschrijving: 'test2'
        }
    ];        
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="demoApp" ng-controller="MainController as ctrl">
    <pre>
raw: 
{{ctrl.data | json : 2}}
        
filtered:
{{ctrl.data | categoryFilter | json : 2}}
    </pre>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS。返回新的工厂实例

来自分类Dev

从angularjs工厂返回值

来自分类Dev

AngularJS测试返回静态数据的简单工厂

来自分类Dev

AngularJS:如何从工厂获取返回值

来自分类Dev

AngularJS:如何从工厂返回可重用的对象?

来自分类Dev

AngularJS:返回$ http的测试工厂承诺

来自分类Dev

angularjs-无法从工厂返回数据

来自分类Dev

无法将值从工厂返回给服务angularJS

来自分类Dev

使用工厂返回多个JButton数组...?

来自分类Dev

工厂从单个对象返回IItem的数组

来自分类Dev

angularjs中工厂方法的空数组

来自分类Dev

AngularJS依赖注入,数组,$ inject,工厂

来自分类Dev

angularjs中工厂方法的空数组

来自分类Dev

AngularJS工厂

来自分类Dev

angularJS工厂

来自分类Dev

angularjs工厂$ http多个方法返回相同的数据集

来自分类Dev

AngularJS:在控制器中获取工厂返回的数据

来自分类Dev

工厂方法总是在AngularJs中返回undefined

来自分类Dev

AngularJS-工厂中的Promise ID字段的返回值

来自分类Dev

AngularJS-工厂中的Promise ID字段的返回值

来自分类Dev

推迟返回工厂,直到循环完全完成 angularjs

来自分类Dev

我想在angularjs的工厂中读取数组值

来自分类Dev

如何在Angularjs的工厂中读取文件数组?

来自分类Dev

访问 AngularJS 工厂方法/数组时出错

来自分类Dev

AngularJS:返回对象内部的数组

来自分类Dev

访问从工厂返回的对象

来自分类Dev

访问从工厂返回的对象

来自分类Dev

$ watch工厂的功能返回

来自分类Dev

SkImageDecoder:工厂返回null