如何使用动态模板创建指令?
'use strict'; app.directive('ngFormField',function($compile) { return { transclude: true,scope: { label: '@' },template: '<label for="user_email">{{label}}</label>',// append replace: true,// attribute restriction restrict: 'E',// linking method link: function($scope,element,attrs) { switch (attrs['type']) { case "text": // append input field to "template" case "select": // append select dropdown to "template" } } } });
<ng-form-field label="First Name" type="text"></ng-form-field>
有类似的需求。 $ compile做这项工作。 (不完全确定如果这是“的”方式做到这一点,仍然工作我的方式通过角)
http://jsbin.com/ebuhuv/7/edit – 我的勘探测试。
需要注意的一点(根据我的例子),我的一个要求是,一旦你点击保存,模板将根据类型属性改变,并且模板是非常不同的。所以虽然,你得到数据绑定,如果需要一个新的模板,在那里,你将不得不重新编译。