我需要使用jQuery循环中的某个类名对所有元素初始化ng-repeat插件。这些元素通过angularjs $http get方法加载。

var app = angular.module('myApp', []);

app.controller('myController', function($scope, $http) {
    $http.get('get_item.php').success(function(response) {
        $scope.items = response;
        angular.element('.make-switch').bootstrapSwitch(); // jQuery plugin code
    });
});


但这是行不通的。
我也尝试了$('.make-switch').bootstrapSwitch();。请帮忙。

最佳答案

创建一个指令,以便您可以在标记中初始化插件:

<div bootstrapswitch></div>


我认为您可以使用范围变量$scope.items动态创建元素,如下所示:

<div class="make-switch" ng-repeat="item in items" bootstrapswitch></div>


...只需添加属性bootstrapswitch即可初始化已加载元素上的开关。

...您的指令可能如下所示:

app.directive('bootstrapswitch', [function() {
   return {
      restrict: 'A',
      link: function(scope, elem, attrs) {
         $(elem).bootstrapSwitch();
      }
   };
}]);

10-02 14:35