0
我正在編寫自定義指令以生成下拉元素。如果我使用隔離範圍,則編譯函數不會轉換模板。使用隔離範圍時轉換角度指令模板
大多數情況下,我正在改變select元素上的ng選項,因爲它們是在指令中提供的。我將如何實現與隔離範圍相同的目標?
myApp.directive('helloWorld', function() {
return {
restrict: 'E',
replace: true,
scope: {
id:'@',
label:'@'
},
template: '<div class="control-group">' +
' <label for="{{id}}" class="control-label">{{label}}</label>' +
' <div class="controls">' +
' <select id="{{id}}" class="medium m-wrap">' +
' </select>' +
' </div>' +
'</div>',
},
compile:function(tElement, tAttrs, transclude){
var opts = tAttrs.textField
?'item.' + tAttrs.textField + (tAttrs.groupBy ? ' group by item.' + tAttrs.groupBy : '') + ' for item in ' + tAttrs.itemSource
:'item for item in ' + tAttrs.itemSource;
tElement.find('select').attr('ng-options',opts);
}
});
我按照你在控制器中的建議添加了,但它仍然不會工作 – Syam
不,它是指令! – Fresheyeball
是的,在指令控制器中。 – Syam