这可能是一个愚蠢的问题,但无论如何。我知道服务就像单例一样,有利于存储共享数据。但是我一直在为一些概念苦苦挣扎——当使用像 ng-repeat 这样的内置指令时,我们是否总是必须编写“中间人”方法来访问/操作服务中的共享对象?例如
我们有
appModule.service('fruits', function(){
this.items = ["apples", "bananas"];
});
要使用ng-repeat
访问这些项目,我们必须首先需要编写控制器方法,如
appModule.controller("fruitsController", function($scope, fruits){
$scope.getFruits = function(){ return fruits.items;}
});
那么如何使用自定义指令呢?鉴于服务也可以注入到指令中,它可以直接访问服务。这两种方法有什么优缺点吗?