javascript - Angular 自定义指令模板行为

标签 javascript angularjs angularjs-directive

我在 Angular 自定义指令方面遇到问题。

JS

app.directive('myElement', function () {
    return {
        scope: {
          item: '=i'
        },
        restrict: 'EA',
        replace: false,
        template: '<td>Name: {{ item.name }}</td> <td>Age: {{ item.age }}</td>'
    };

HTML

  <div ng-controller="MyCtrl">
<table class="table table-hover" border=1>
    <tr ng-repeat="p in people">
      <td my-element i="p"></td>
    </tr>
</table>

此模板不会呈现为 2 个“TD”标签,它仅呈现 html 中的“TD my-element”,其中包含内部绑定(bind)数据。

如果我将模板更改为

template: '<div>Name: {{ item.name }}</div> <div>Age: {{ item.age }}</div>'

页面在“TD my-element”内呈现 2 个 div“DIV”

如果我设置replace=false,一切都会消失。

为什么 TD 的行为与 DIV 不同

http://jsbin.com/iMezAFa/168/edit

最佳答案

因为您已替换 false,所以它将模板放入容器元素内。你不能有两个<td>位于 <td> 内,这只是无效的标记。但你可以有两个<divs>里面 <td> .

关于javascript - Angular 自定义指令模板行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21586545/

相关文章:

javascript - 检查两个选择器元素是否存在并且在 jQuery 中具有相同的值

javascript - CanvasJS - 从烛台图中删除了空洞/周末等

javascript - Javascript 2d Box 的碰撞检测

angularjs - Protractor - 选择当前元素的下一个兄弟

AngularJS : Isolating scope in a directive with transclude set to true

javascript - angularjs - 自定义指令名称 "smart-float"

javascript - 访问父 Controller 中指令的html内容

javascript - 使用滚动折叠一个 div 直到某个点

javascript - 使用 Javascript 在 MongoDB 中执行带有希腊字符的查询不返回任何结果

angularjs - Angular $http.post 请求发送双重请求。?