只是学习角度。
我有一个控制器,它基本上加载了一些 json。我试图在我的指令中迭代这个。我猜我做错了?任何帮助表示赞赏。在调试器中,foreach 永远不会迭代,因为范围没有数据。我猜这是异步调用的问题?
我已经对 $scope.result 进行了硬编码,以便它同步加载到控制器中,并且工作正常。它只是似乎没有更新的 async .then 调用。
angular.module('dilApp')
.controller('MainCtrl', function($scope, $http) {
$scope.result = {};
$http.get('data/data.json')
.then(function(res){
$scope.result = res.data;
});
该指令..
.directive('myTable', function () {
return {
restrict: 'E',
link: function ($scope, element, attrs) {
var html = '<table>';
angular.forEach($scope.result, function (row, index) {
.....
})
html += '</table>';
element.replaceWith(html)
}
}
});
此外,当我在 json 的异步调用上有一个断点时。我可以看到加载的“正确”动态数据。我偶然发现了链接函数内部的 $watch 属性,但我无法获得任何运气。
编辑 - 添加到指令的链接方法。现在,当我的 $http.get 方法被触发时,我可以正确地看到这个火灾。我只是不确定如何从要更新的链接中获取已经呈现的 html。
$scope.$watch('result', function($scope){
// $scope has new data how do I get the template to update ??
});