Я новичок в angualrjs, я использую директиву jQuery DataTable с angularJS, которая работает нормально. Проблема, с которой я столкнулся, заключается в добавлении функции javascript в «TR» динамически с «ng-click», который не работает. Кажется, что динамически добавленные элементы не распознаются угловыми.ng-click не работает с AngularJS и jquery dataTables, если используется row.add
Может кто-нибудь помочь мне решить эту проблему.
Есть много вопросов в Stackoverflow и упомянутом решении, которое я уже пробовал, но не работает. Я использую метод jQuery row.add для пополнения строк.
Вы можете найти код, который я использую
angular.module('myApp', [])
.controller('myCtrl', ['$scope','$filter','$http', '$compile', function($scope, $filter, $http,$compile) {
$scope.myFunc = function() {
$http.get('http://localhost:9999/Angular_web/rest/main_search/byaufnum/').
then(function(response) {
var mytable = $('#table1').DataTable();
response.data.map(function(item) {
mytable.row.add(['<span style=\'white-space: nowrap\'><a href=javascript:angular.noop(); ng-click=\"getBGPdata(\''+item.auftragsNr+'\')\">'+item.auftragsNr+'</a></span>']);
$compile(mytable.row)($scope);
})
mytable.draw(false);
});
};
$scope.getBGPdata = function(searchValue) {
console.log('--> '+searchValue);
};
}]);
Я знаю, что эта проблема может быть решена с помощью $compile and $scope
, но не знаете, как добавить это в коде выше.
Ниже приведен HTML из redering таблицы
<tr role="row" class="odd"><td class="sorting_1"><span style="white-space: nowrap"><a href="javascript:angular.noop();" ng-click="getBGPdata('KRT-ZDK-PMN_NEU-WWT_loopback_SFV_1')">KRT-ZDK-PMN_NEU-WWT_loopback_SFV_1</a></span></td>
переместить этот '$ компиляции (туЬаЫе) ($ области видимости) ; 'после' mytable.draw (false); ' – Jag
@Jag все еще не работает. –
Вы смогли увидеть обработанный DataTable без каких-либо ошибок? любые ошибки консоли? – Jag