Задать вопрос

Как применить плагин jQuery на angularjs?

Подскажите, как применить плагин jQuery на angularjs?
Код директивы:
app.directive('ibaModel', function () {
    return {
        restrict: 'A',
        priority: 1010,
        link: function (scope, element, attrs) {
            // debugger;
            var el = $(element);
            el.attr('id', scope.config.templateId);
            
            el.iba_model('init', {id: scope.config.templateId});
        }
    };
});


так не работает. Внутри плагина происходят запросы к серверу за скиптами и разметкой.

Плагин успешно выводит код но не применяет события.
  • Вопрос задан
  • 2313 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
benbor
@benbor
Помог ответ - не забудь лайкнуть
1. Использовать jquery и angular не есть лучшая идея, у них абсолютно разные идеологии. Но если "Вам надо и все тут", то
2. Про события, которые произошли "вне ангулар мира" ангулар ничего не знает. Ваш
el.iba_model('init', {id: scope.config.templateId});
явно что-то добовляет в DOM и чтобы ангулар об этом узнал Вам нужно в этот момент вызвать $digest ( или более безопасную функцию $apply)
Вот пример не моего jsfiddle jsfiddle.net/tnq86/15
После того, как элементы изменились в DOM из коллбека jquery вызывается $scope.$digest()
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@sergeysmishin
У Вас не объявлен локальный scope

app.directive('ibaModel', function () {
    return {
        restrict: 'A',
        priority: 1010,
        scope: {
            config:{
                   templateId:'='
            }
       },
        link: function (scope, element, attrs) {
            // debugger;
            var el = $(element);
            el.attr('id', scope.config.templateId);
            
            el.iba_model('init', {id: scope.config.templateId});
        }
    };
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы