在视图中多次使用时,是否有一种简单的方法只能在指令中调用API一次

时间:2015-08-03 17:18:54

标签: angularjs angular-directive angular-http

我制作了一个指令,用于下拉并从API填充它。有用。但是,当我在视图中多次使用此指令时,它会多次调用API来填充下拉列表。

所以我想知道是否有一些简单的方法可以避免这种情况。不那么简单的方法是将$ http放入一个以某种方式进行缓存的服务。

指令

app.directive('dropdown', function() {
    return {
        // omitted...
        controller: function($scope, $http) {
            $http.get("...")...;
        }
    };
});

查看

<dropdown></dropdown>
<dropdown></dropdown>

1 个答案:

答案 0 :(得分:0)

最好使用服务来处理$ http请求,它还允许您缓存数据。

在这种特殊情况下,您将数据保存在服务中的对象中,每次加载指令并调用服务方法 getMyData(blah)时,您将检查数据是否已存在于对象并取消对API的调用,否则执行$ http.get。