angularjs指令是否有任何最大嵌套级别

时间:2015-01-27 09:58:31

标签: angularjs angularjs-directive

我有下一个指令:schemarecordfieldtype

在视图中我使用的schema指令在模板中包含record。 在record模板内部使用field指令,在field指令内部使用type指令。 (嵌套级别= 4)

  • 架构
    • 记录
      • 字段

现场指令代码:

.directive("field", function(){
    return {
        restrict: "E",
                replace: true,
                transclude: true,
                scope: {
                    field: '='
                },
                template: "<tr><td>{{field.name}}</td><type type='field.type'></type><td>{{field.type}}</td></tr>"
    }
  })

输入指令代码:

.directive("type", function($compile){
    return{
        restrict: "E",
        replace: true,
        transclude: true,
        scope: {
            type: '='
        },
        template: "<td>test</td>"
    }
  })

渲染fieldtype指令的部分输出: size ["null","long"]type指令评估没有结果。)

有趣的是,当我将type指令放高一级(record内部模板)时,所有内容都会正确呈现:

1 个答案:

答案 0 :(得分:0)

问题与field指令的模板定义有关。 在<tr>标记内,您不能放置未被包围的内容,但<td>即使这是一个会生成正确的周围(<td>...</td>)的指令。

将指令更新为下一个状态:

字段:

.directive("field", function(){
    return {
        restrict: "E",
                replace: true,
                transclude: true,
                scope: {
                    field: '='
                },
                template: "<tr><td>{{field.name}}</td><td><type type='field.type'></type></td><td>{{field.type}}</td></tr>"
    }
  })

型:

 .directive("type", function($compile){
        return{
            restrict: "E",
            replace: true,
            transclude: true,
            scope: {
                type: '='
            },
            template: "test"

        }
      })

解决问题。