2

我在带有模板 url 的 angular js 中使用自定义指令,代码链接在这里。问题是,如果我将 ngRepeat 传递给元素,那么 ngRpeat 不能使用模板 url,那么它就不起作用,但是如果我传入模板本身,它就可以工作。

4

2 回答 2

1

更新:

以下是您在 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. main.html 的 ng-repeat 中缺少结束引号
  2. 试图访问 main.html 中的 customersD,而 mainController 的 $scope 中没有定义名为 customersD 的数组。
  3. 尝试在 search.html 中访问 CM(这是隔离范围指令的模板)。search.html 中只能有customersD

我认为您对范围的理解不正确。如果您在此处提问之前阅读足够多的内容会很好。:)

上一个答案: 您在 ng-repeat 中缺少右引号并使用错误的变量执行以下操作:

<search-results customers-d ="CM" ng-repeat="CM in customers"></search-results>
于 2017-02-17T07:15:35.463 回答
0

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'
}
});
于 2017-02-17T08:53:02.643 回答