0

我正在学习角度,并且理解了指令中的范围,我开始变得更加……大胆,容我说吧。我想渲染一个嵌套在另一个表的单元格中的表,其中两个表都是由两个具有不同范围的独立指令生成的。这是小提琴: http:
//jsfiddle.net/jared_t83/Y8LjY/
这是有问题的链接方法:

link: function($scope, element, attrs) {
  $scope.property = "scopingTest2.link() - won't overwrite parent"
  var html = element.html(),
    text = [
      'scopingtest2 - new scope, prototipically inherited from the parent',
      '<table>',
      '<tr><th>key</th><th>value</th></tr>',
      '<tr>',
      '<td>Nested table should be here: <br><div scoping-test1></div></td>',
      '</tr>',
      '<tr>',
      '<td>$scope.property</td>',
      '<td>', $scope.property, '</td>',
      '</tr><tr>',
      '<td> $scope.$parent.property </td>',
      '<td>', $scope.$parent.property, '</td>',
      '</tr><tr>',
      '<td> $scope.__proto__.property</td>',
      '<td>', $scope.__proto__.property, '</td>',
      '</tr></table><br>'
    ]
  element.html(html + text.join(''));
}

应该呈现嵌套表的行是:

      '<tr>',
      '<td>Nested table should be here: <br><div scoping-test1></div></td>',
      '</tr>',

但是我看到的是一个渲染表,上面的文字。
我究竟做错了什么?如何实现我想要的?感谢您的宝贵时间,
问候
Jared

4

1 回答 1

0

好的,我现在明白了。这

element.html(html + text.join(''));

是一个 jqLit​​e 函数,它简单地将传递的文本放在目标元素上。为了做我想做的事,我需要使用 angular 指令的 'template:' 属性。
傻我:)

于 2013-08-26T02:10:41.460 回答