我制作了一个指令,用于下拉并从API填充它。有用。但是,当我在视图中多次使用此指令时,它会多次调用API来填充下拉列表。
所以我想知道是否有一些简单的方法可以避免这种情况。不那么简单的方法是将$ http放入一个以某种方式进行缓存的服务。
指令
app.directive('dropdown', function() {
return {
// omitted...
controller: function($scope, $http) {
$http.get("...")...;
}
};
});
查看
<dropdown></dropdown>
<dropdown></dropdown>
答案 0 :(得分:0)
最好使用服务来处理$ http请求,它还允许您缓存数据。
在这种特殊情况下,您将数据保存在服务中的对象中,每次加载指令并调用服务方法 getMyData(blah)时,您将检查数据是否已存在于对象并取消对API的调用,否则执行$ http.get。