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

AngularJS и плагин jQuery UI
В общем, есть на странице селект, по которому фильтруется вывод основных данных. Он должен быть декорирован Selectmenu.
Я набросал простейшую директиву:
function($scope, element, attrs, controller) {

        // Получаю опции из атрибута
        var options = $scope.$eval(attrs['selector']);

        angular.extend(options, {
            // Без этого модель привязанная к селекту не обновляется
            change: function(event, object) {
                element.trigger('change');
            }
        });

        // Применяю плагин
        $(element).selectmenu(options);

}


Тут всё хорошо, всё работает. Но т.к. приложение RESTfull (это мой первый опыт) данные для селекта должны подгружаться динамически. И в итоге получается, что когда данные пришли и оригинальный селект заполнился - Selectmenu уже применён и пустой.
Причём получается от случая к случаю: обновляешь страницу, если данные пришли быстро - то и в декорированном селекте появились, если нет то он пустой (оригинальный, который скрыт в порядке).

Я пробовал вызывать .selectmenu("refresh"); после загрузки данных:
$scope.staffList = Staff.query({fOnlyAuthors: 1}, function(){
        // console.log(jQuery(".selector", element).length)
        jQuery(".selector", element).selectmenu("refresh");
});

Но это эффекта не имеет, селект по прежнему остаётся пустым.

Подскажите как правильно решить данный вопрос?
Как-то организовать отложенное применение декорирующей директивы или обновление плагина?
Ответить с цитированием