1

我有一个指令从控制器中获取一个名为 stuff 的属性的 JSON 数组。那部分工作正常。我现在要做的是创建一个链接函数,该函数将使用该数组的长度并允许我重复 TR 和 TD 元素来制作一个格式良好的表格。我在 Stack 上找到了一个很好的例子,但我遇到的问题是我无法从链接函数中的 stuff 属性中获取任何内容。我只是不确定。

控制器:

function itemControl($http, $scope) {
  $http.get('doc/products.json').success(function (prodata) {
    $scope.data = prodata;
  });
}

指示

app.directive("showcase", function () {
  return {
    restrict: "A",
    template: '<table>' + 
               '<colgroup span="2"></colgroup>' + 
                '<tr ng-repeat="items in stuff">' + 
                '<td>' + 
                 '<a  ng-href="{{items.SRC}}" Title="{{items.name}}" colorbox>' + 
                 '<img ng-src="{{items.SRC}}"></a>' + 
                '</td></tr></table>',
    scope: {
      stuff: "="
    },
    link: function (scope) {
      alert(scope.stuff);
    }

  };
});

HTML

<div ng-controller="itemControl">
  <div showcase stuff="data"></div>
</div>
4

1 回答 1

2

因为数据是从外部 JSON 文件加载的,所以在创建“展示”实例时它不可用。为了赶上这个时间,你可以使用 scope.$watch

http://docs.angularjs.org/api/ng.$ro​​otScope.Scope#$watch

看看这个:

http://www.plnkr.co/edit/YdYVEWbmcUZZhUBs01pI

于 2013-04-19T00:51:35.363 回答