我與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
的推薦方式(解釋會很好),或者如果不是,那麼推薦的方法是什麼?
所以,這是工作的罰款,但你想知道爲什麼/它是如何工作的? – exclsr 2013-04-21 18:55:42
是的,不!如果這是推薦的方式,那麼我可以假設框架只是做了一些魔術,如果不是那麼推薦的方式。 – Rippo 2013-04-21 18:57:27
我認爲你在擔心錯誤的事情。當你需要數據時,你應該使用$ http.get,而不用擔心模板(如果有效的話)。如果模板不起作用,那麼應該查看angularjs如何使用$ apply()來傳播模型中的更改。 – 2013-04-21 19:09:11