Угловой Js ng-repeat с пользовательской директивой templateUrl

Я использую пользовательскую директиву в угловых js с шаблоном URL, ссылка на код здесь. Проблема в том, что ngRpeat не работает с URL-адресом шаблона, если я передаю ngRepeat элементу, тогда он не работает, но если я передаю сам шаблон, он работает.

2 ответа

Решение

Обновить:

Ниже приведен код, который вы написали в main.html

<search-results customers-d ="customers" ng-repeat="CM in customersD></search-results>

Ниже приведена директива searchResults, которую вы написали:

myApp.directive('searchResults', function () {
    return {
        templateUrl: 'directives/search.html',
        scope: {
            customersD: '=',
        }
    }
});

Ниже приведен основной контроллер, который вы написали:

myApp.controller('mainController', ['$scope', '$log', function($scope, $log) {
    $scope.customers = [{ name:'Rishabh'},{name:'Krishna'}]
}]);

И search.html выглядит следующим образом:

<a href="#" class="list-group-item">
    <h4 class="list-group-item-heading"> hi </h4>
    <p class="list-group-item-text">{{CM.name}}</p>
</a>

Теперь то, что вы делаете неправильно:

  1. Отсутствует закрывающая кавычка в ng-repeat of main.html
  2. Попытка получить доступ к CustomersD в main.html, пока в $ scope mainController не определен массив с именем CustomersD.
  3. Попытка получить доступ к CM в search.html (который является шаблоном директивы изолированной области видимости). Вы можете иметь только клиентов D в search.html

Я думаю, что вы понимаете сферу не правильно. Было бы хорошо, если вы прочитаете достаточно, прежде чем задавать вопросы здесь.:)

Предыдущий ответ: вам не хватает закрывающей кавычки в ng-repeat и вы используете неверные переменные. Сделайте следующее:

<search-results customers-d ="CM" ng-repeat="CM in customers"></search-results>

main.html

<div class="list-group">
    <search-results customers-d ="customers" ng-repeat="CM in customers"></search-results>
</div>

Директивные изменения в app.js

myApp.directive('searchResults', function () {
return {
    restrict : "AE",
    templateUrl: 'directives/search.html'
}
});
Другие вопросы по тегам