在 angularJS 中显示来自工厂的数组

Display array from factory in angularJS

我正在尝试显示 2 个数组中的 1 个,这是我的工厂:

App.factory('NieuwsService', ['BERKVENS_NIEUWS', 'SVEDEX_NIEUWS', function (BERKVENS_NIEUWS, SVEDEX_NIEUWS) {
    var nieuwsService = {};

    var _nieuws = [];

    var _loadNieuws = function (url) {
        switch (url) {
        case 'berkvens':
            _nieuws = BERKVENS_NIEUWS;
            break;
        case 'svedex':
            _nieuws = SVEDEX_NIEUWS;
            break;
        }
    }

    nieuwsService.loadNieuws = _loadNieuws;
    nieuwsService.nieuws = _nieuws;

    return nieuwsService;

}]);

这是我的控制器的代码:

App.controller('instellingenCtrl', function ($scope, NieuwsService) {
    var url = 'berkvens';

    angular.copy(NieuwsService.loadNieuws(url));

    $scope.message= NieuwsService.nieuws[1].title;
});

但是不行。

那么我如何选择我想要的数组 'berkvens' 以及如何显示它呢?

jsfiddle

您的服务中不需要 nieuwsService.nieuws = _nieuws;
您只需要 return _nieuwscase : 条件之后。

工作Plunker

工厂

App.factory('NieuwsService', ['BERKVENS_NIEUWS', 'SVEDEX_NIEUWS', function (BERKVENS_NIEUWS, SVEDEX_NIEUWS) {
    var nieuwsService = {};

    var _nieuws = [];

    var _loadNieuws = function (url) {
        switch (url) {
        case 'berkvens':
            _nieuws = BERKVENS_NIEUWS;
            return _nieuws; // return _nieuws if case 'berkvens'
        case 'svedex':
            _nieuws = SVEDEX_NIEUWS;
            return _nieuws; // return _nieuws if case 'svedex'
        }
    }

    nieuwsService.loadNieuws = _loadNieuws;

    return nieuwsService;

}]);

控制器

App.controller('instellingenCtrl', function ($scope, NieuwsService) {
    var url = 'berkvens';

    // copy loadNieuws  
    var copyLoadNieuws = angular.copy(NieuwsService.loadNieuws(url));

    $scope.message= copyLoadNieuws[1].title;
});