模板不包含在指令中

时间:2014-12-16 10:55:52

标签: angularjs

我需要在表格中包含一些基于模板prototype/views/prototype/booking/templates/table-row.html的tr元素。我使用custom指令来指示应插入模板的位置。我还定义rownum以显示粘贴模板时应使用的值。这根本不做任何事情。如何使它工作?

prototypeApplication.directive('tablerowtemplate', function() {
    return {
        restrict: 'E',
        transclude: true,
        scope: { rownum:'@' },
        templateUrl: 'prototype/views/prototype/booking/templates/table-row.html'
    };
});

预订

    <table><tr><td>static entry</td></tr>
     <tablerowtemplate rownum="1"></tablerowtemplate>
<tablerowtemplate rownum="2"></tablerowtemplate>
    </table>

prototype / views / prototype / booking / templates / table-row.html

<tr>
<td>
    <div class="form-group first-name">
        <label>First name</label>
        <input type="text" ng-class="{'input-valid': isValidField('FirstName', persons[{{rownum}}].firstName)}"
               name="firstName" class="form-control input-name" ng-model="persons[{{rownum}}].firstName"
               ng-focus="focused('inputFirstName', {{rownum}})"  placeholder="-">
    </div>

</td>
</tr>

更新

控制台没有错误。渲染时,html dom中的所有<tablerowtemplate rownum="1"></tablerowtemplate>都不会被激活

更新2

当我尝试生成一些cell时,我只得到一个:

            <cell rownum="0"></cell>
            <cell rownum="1"></cell>
            <cell rownum="2"></cell>
            <cell rownum="3"></cell>

prototypeApplication.directive('cell', function() {
    return {
        restrict: 'E',
        replace: true,
        transclude: true,
       scope: { rownum:'@' },
        templateUrl: 'prototype/views/prototype/booking/templates/table-row.html'
    };
});

这是否意味着设置rownum="3"使模板{{rownum}}等于3?属性值是否可能告诉模板注入哪些值?如何解决?

1 个答案:

答案 0 :(得分:1)

这是一个有角度的问题:( 请在此处阅读:https://github.com/angular/angular.js/issues/1459

我也试过写一个简单的指令,行为很奇怪!