将数据对象传递给ng-repeat内的指令

时间:2014-06-20 16:36:12

标签: javascript angularjs

我在将数据对象从ng-repeat传递给内部指令时遇到问题。您可以在此处找到它:JSBin

在Chrome开发者工具中,我可以看到数据对象未定义,但我无法弄清楚原因。我将它传递给指令,然后将其绑定到范围。

我认为对于ng-repeat的每个循环,构建一个范围并解析内部的指令。正确?

此外,我想将我的数据对象传递给指令并访问那里的所有数据并在该对象上设置侦听器。这可能吗?

2 个答案:

答案 0 :(得分:4)

这是指令代码的片段:

return {
  restrict: 'E',
  scope: {
    data: "="
  },
  link: function(scope, element, attrs) {
    // here is the problem, data is really undefined
    console.log(data);

我们可以看到访问真正未定义的变量data。我们必须做的是通过 scope.data 访问它。所以这样做:

link: function(scope, element, attrs) {
   console.log(scope.data); // here scope.data

有一个有效的plunker

答案 1 :(得分:1)

您使用属性数据

定义了隔离范围
scope: {
    data: "="
}

属性数据现在映射到 scope.data 。本地或全局变量 data 显然不存在。