Использование меню JqueryUI с AngularJS

0

Мы пытаемся заставить JqueryUI меню работать в нашем приложении AngularJS. Из нашего Layout.js мы делаем следующее:

OURApp.controller('leftBarCtrl', ['$scope', function ($scope) {
    $scope.init = function () {
        $.ajax({
            url: "../Data/MainPageData",
            type: "GET",
            dataType: "Json",
            data: {},
            success: function (data) {
                if (data.Acknowledgment) {
                    $scope.$apply(function () {
                        $scope.subscriptionsModel = data.userSubscriptionsReponse.UserSubscriptionsObjects;
                        $scope.CompanyModel = data.userResponse.CompanyInformation;
                    })
                    $("#mdsubscriptionMenu").menu({
                        menus: "ul",
                        items: "li"
                    });

                }
               .......

Но, похоже, это не работает. Я читал, что перемещение вызова menu() на угловое ".directive", ограниченное "A", должно делать трюк. Это единственный рекомендуемый способ заставить компоненты JqueryUI работать с AngularJS?

благодаря

  • 1
    не путайте jquery с angular, используйте $http вместо $.ajax чтобы избавиться от беспокойства при запуске цикла digest

1 ответ

1
Лучший ответ

Этот тип кода должен быть в директиве. У вас не должно быть jQuery в контроллере.

Также вы не учитываете время рендеринга при попытке инициализировать плагин вне $apply(). Когда вы запускаете код плагина, теперь $("#mdsubscriptionMenu"), вероятно, все еще пуст.

Это поможет увидеть вид html, который вы используете для визуализации меню.

Вы можете использовать $last свойство ng-repeat для запуска инициализации плагина меню

  • 0
    Да, использование директивы и свойства $ last сделали свое дело! Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню