Показать сообщение отдельно
  #8 (permalink)  
Старый 07.10.2014, 12:02
Аватар для Sufir
Аспирант
Отправить личное сообщение для Sufir Посмотреть профиль Найти все сообщения от Sufir
 
Регистрация: 15.06.2008
Сообщений: 47

Мой окончательный вариант:
directive('selector', function() {
    return {
        restrict: 'A',
        replace: true,
        //require: '?ngModel',
        link: function($scope, element, attributes, controller) {

            var options = $scope.$eval(attributes['selector']) || {};

            angular.extend(options, {
                change: function(event, object) {
                    element.trigger('change');
                }
            });

            element.selectmenu(options);

            element.bind('$destroy', $scope.$watch(attributes.ngModel, handler));
            element.bind('$destroy', $scope.$watch(attributes.ngDisabled, handler));
            element.bind('refresh-me', refreshMe);

            function handler() {
                element.selectmenu("refresh");
            }

            function refreshMe() {
                element
                    .selectmenu("destroy")
                    .selectmenu(options);
            }

        }
    };
});

<select class="selector"
     ng-model="selectedStaff"
     ng-options="(staff.surname + ' ' + staff.name) for staff in staffList"
     data-selector="{icons: {button: 'ui-icon-list'}}">

$scope.staffList = Staff.query({}, function(){
    $(".selector", element).trigger('refresh-me');
}


Не уверен, что в полной мере правильно с точки зрения Angular, но задачу решает.
nerv_, спасибо за помощь и наводки.

Последний раз редактировалось Sufir, 07.10.2014 в 12:10.
Ответить с цитированием