2016-05-11 1 views
0

Я просто пытаюсь добавить обработчик ng-click на кнопку. Как я могу это сделать? Я попробовал приведенный ниже код, но это не работающих, любая помощь оценена.Как добавить обработчик ng click динамически в jquery smart wizard для следующей кнопки

btNext = $('<a>' + options.labelNext + '</a>').attr("href", "").addClass("buttonNext"); 
$('.buttonNext').attr('ng-click', 'LoadSecondDivDetails()'); 

ответ

1

Это не работает, потому что AngularJS компилирует код один раз.

Для того чтобы ng-click работал, вам нужно сказать, что нужно скомпилировать его снова.

Используйте $compile провайдер, чтобы сообщить AngularJS, чтобы перекомпилировать вашу часть html.

В вашем случае:

btNext = $compile('<a ng-click="your_action()"></a>')($scope); 
0

Смешивание angularJS и JQuery не рекомендуется. AngularJS уже обрабатывает элементы DOM, и вы действительно можете столкнуться с каким-то нежелательным поведением. Я бы сохранил весь мастер в формате angularJS, используя ngShow/ngHide, чтобы создать форму мастера для мастера. Тогда вы можете просто область действия переменной в нг-шоу

ng-show="currentPage == 1" 

и тогда Представлять запустить функцию, которая изменяет к следующему разделу мастера.

ng-submit="loadNext(2)" 

и у вас есть функция, которая обрабатывает все это. Что-то вроде

$scope.loadNext = function() { 
    $scope.currentPage += 1; 
}; 

$scope.goBack = function() { //this can be your back button 
    $scope.currentPage -= 1; 
}; 
Смежные вопросы