Using ngOptions inside directive
angularjs, angularjs-directive
Solution
I suggest you only pass the itemList to the directive (and myModel) and put the ng-options inside your template:
<shuttle-boxes items="itemList" ng-model="myModel"></shuttle-boxes>
Directive:
myApp.directive('shuttleBoxes', function($timeout) {
return {
restrict: 'E',
scope: { items: '=', ngModel: '='},
template: '<div class="shuttle-boxes">' +
'<select multiple="multiple" class="shuttle-boxes-left"
ng-options="item for item in items" ng-model="ngModel"></select>' +
'<button class="shuttle-boxes-btn" type="button">' +
'<i class="icon icon-arrow-right"></i></button>' +
'<button class="shuttle-boxes-btn" type="button">' +
'<i class="icon icon-arrow-left"></i></button>' +
'<select multiple="multiple" class="shuttle-boxes-right"></select>' +
'</div>',
replace: true
}
});
Fiddle.
Problem
I have the following shuttle boxes directive: ``` <shuttle-boxes ng-options="item for item in itemList" ng-model="myModel" /> ``` My template looks like this: ``` template: '<div class="shuttle-boxes">' + '<select multiple="multiple" class="shuttle-boxes-left"></select>' + '<button class="shuttle-boxes-btn" type="button"><i class="icon icon-arrow-right"></i></button>' + '<button class="shuttle-boxes-btn" type="button"><i class="icon icon-arrow-left"></i></button>' + '<select multiple="multiple" class="shuttle-boxes-right"></select>' + '</div>' ``` What I want to do is take the ng-options repeater from `<shuttle-boxes>` and use it to populate `<select class="shuttle-boxes-left">`. The way I am trying to do it that isn't working is simply copying over the ng-options attribute to the select list like so: ``` var availableList = cElement.find('.shuttle-boxes-left'), repeater = cAttrs.ngOptions; availableList.attr('ng-options', repeater); ``` Here is the fiddle: http://jsfiddle.net/dkrotts/tHTAY/1/ What am I doing wrong?