我有下一个指令:schema
,record
,field
和type
。
在视图中我使用的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>"
}
})
渲染field
和type
指令的部分输出:
size ["null","long"]
(type
指令评估没有结果。)
有趣的是,当我将type
指令放高一级(record
内部模板)时,所有内容都会正确呈现:
答案 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"
}
})
解决问题。