建议使用$ http.get的地方在哪里

时间:2013-04-21 18:45:47

标签: angularjs

我正在使用angularjs并使用以下HTML: -

   <div ng-app="App">
      <div ng-controller="AppCtrl">
         <products></products>
      </div>
   </div>

我的js看起来像这样: -

var app = angular.module('App', []);

app.controller("AppCtrl", function($scope, $http) {
   $http.get('/api/products')
      .then(function(res) {
         $scope.products = res.data;
   });
});

app.directive("products", function () {
   return {
      restrict: "E",
      template: "<h1>Products</h1><ul><li ng-repeat='product in products'>{{product.Name}} - <em>{{product.Category}}</em></li></ul>",
   };
});

这非常有效,但我不确定指令如何知道控制器在模板呈现结果之前已加载数据。所以我的问题是: -

在这种情况下推荐使用$http.get的方法(解释会很好),如果不是,那么建议的方法是什么?

1 个答案:

答案 0 :(得分:2)

我认为这可以很好地利用$http.get。在一天结束时,它只是一个执行ajax请求的工具。

看来你的问题源于担心你的指令会在不同情况下神秘地破裂,这是可以理解的。因此,关键是要理解数据绑定是Angular的秘密武器。

考虑它的一种方法是,Angular编译所有内容并将其抛入事件/摘要循环。因此,它能够检测依赖关系,监视变量的变化,并在这些变量发生变化时调用依赖方法(例如product指令)。

Angular指南在提供进一步理解的概念图方面做得很好,而且就在这里:http://docs.angularjs.org/guide/concepts