AngularJS:指令模板可以包含表单元素吗?

时间:2014-09-22 19:13:35

标签: angularjs angularjs-directive angularjs-ng-transclude

是否可以在角度指令模板中使用form元素?例如。我可能想要完全生成表单以节省重复编码 - HTML显示数据,指令自动生成编辑。我会发现编辑重复的页面非常有用:

<div data-editable="true">
  <span>{{item.name}}</span>        
</div>

指令:

.directive('editable',function(){
   return {
       restrict: 'AE',
       require: '^form',
       transclude:true,
       scope: {}, // to be set after...
       template:'<div><form name="someForm"><span>FORM</span></form></div>',
       link: function(scope,elm,attrs,controller) {
           //nothing here quite yet...
       }
   };
});

然而,当我运行它时,输出不会转换,并且form元素被删除:

<div data-editable="true" class="ng-isolate-scope"><div><span>FORM</span><ng-transclude></ng-transclude></div></div>
  • 中不会转换<span>{{item.name}}</span>
  • <form>元素已完全删除

我做错了什么?

1 个答案:

答案 0 :(得分:0)

这里有两个问题:

  1. <form>内有一个<form>,它被浏览器或角落剥离(我不在乎)。
  2. Angular pre-1.3.0似乎仅支持 模板中的ng-transclude作为属性。从1.3.0起,它也支持它作为一个元素。