ドロップダウン要素を生成するカスタム ディレクティブを作成しています。分離スコープを使用すると、コンパイル関数はテンプレートを変換しません。
ほとんどの場合、ディレクティブで提供されている select 要素の ng-options を変更しています。分離スコープで同じことを達成するにはどうすればよいですか?
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);
}
});