【发布时间】:2015-09-18 08:45:19
【问题描述】:
我无法让我的嵌入指令正常工作。我想做以下事情:创建一个指令,输出一个列表,其中每个项目的内容由嵌入的内容定义。例如:
<op-list items="myItems">
<span class="item">{{item.title}}</span>
</op-list>
所以我会在 op-list 的模板中使用 ng-repeat,并且必须能够访问由 ng-repeat 在转入内容中创建的范围。
这是我到目前为止所做的:
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', ['$scope', function ($scope) {
$scope.myModel = {
name: 'Superhero',
items: [{
title: 'item 1'
}, {
title: 'item 2'
}]
};
}]);
myApp.directive('opList', function () {
return {
template: '<div>' +
'<div>items ({{items.length}}):</div>' +
'<div ng-transclude ng-repeat="item in items"></div>' +
'</div>',
restrict: 'E',
replace: true,
transclude: true,
scope: {
items: '='
}
};
});
<html ng-app="myApp">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller="MyCtrl">
<div>Hello, {{myModel.name}}!</div>
<op-list items="myModel.items">
<span>title: {{item.title}}|{{$scope}}|{{scope}}|{{items}}</span>
</op-list>
</div>
</html>
【问题讨论】:
标签: javascript angularjs angularjs-directive angularjs-scope