我的代码在我的HTML中重复了很多次:
<div multi-select
input-model="filters.REPLACEMENT_A"
button-label="name"
item-label="name"
tick-property="selected"
default-label="REPLACEMENT_B"
></div>
唯一改变的部分是两个REPLACEMENT_字符串。因此,我想制定一个我会这样称呼的指令:
<myDirective model="regions" label="The label here"></myDirective>
我认为既然这个指令基本上返回了另一个指令(多选指令),我不得不编译/处理它而只是返回简单字符串,对吗?
答案 0 :(得分:0)
这似乎有效。不知道如果它是&#34;对&#34;方式。
var filterDefinition = function ($compile) {
return {
restrict: 'E',
link: function (scope, element, attrs) {
var content = '<div multi-select button-label="name" item-label="name" tick-property="selected" group-property="group"';
content += ' input-model="filters.' + attrs.filter + '"';
content += ' default-label="' + attrs.label + '"></div>';
var jqLiteElem = angular.element(content);
$compile(jqLiteElem)(scope);
element.replaceWith(jqLiteElem);
}
};
};