我在带有模板 url 的 angular js 中使用自定义指令,代码链接在这里。问题是,如果我将 ngRepeat 传递给元素,那么 ngRpeat 不能使用模板 url,那么它就不起作用,但是如果我传入模板本身,它就可以工作。
问问题
611 次
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>
现在你做错了:
- main.html 的 ng-repeat 中缺少结束引号
- 试图访问 main.html 中的 customersD,而 mainController 的 $scope 中没有定义名为 customersD 的数组。
- 尝试在 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 回答