使用routeProvider在Controller中设置Angular服务

时间:2014-12-02 04:58:34

标签: angularjs angularjs-service

我有以下内容:

 when('/admin/foo', {
        controller: FooListCtrl,
        templateUrl: 'frontend/partials/admin/foo-list.html',
        resolve: {
            aliasNames: ['printingService', function(printingService){
                return printingService.listArray(????);
            }]
        }
    }).

控制器:

function FooListCtrl($scope, Restangular, aliasNames) {
    $scope.aliasNames= aliasNames;
}

打印服务:

app.service('printingService', [function() {

return {
    listArray: function(theArray) {
        var result= "{";
        result += theArray.join(", ");
        result += "}";
        return result;
    }
};
}]);

在我的html页面中,我有一个ng-repeat,重复中的每个对象都有一个数组,所以我想知道如何使用每个对象的数组来调用服务。 ng-repeat将遍历具有数组的对象,我需要将每个数组传递给服务,例如:

<div ng-repeat="obj in objects">{{obj.names}}</div>

如何将每个obj.names传递给printingService?

1 个答案:

答案 0 :(得分:0)

将服务的引用保存在控制器的范围内,并从视图中调用它:

JS:     function FooListCtrl($ scope,Restangular,aliasNames,printingService){         $ scope.aliasNames = aliasNames;         $ scope.printingService = printingService;     }

然后在HTML中:

<div ng-repeat="obj in objects">{{printingService.listArray(obj.names)}}</div>