我正在学习AngularJS。我写了一个简单的指令。它仅在replace设置为false时有效。有趣的是,如果我理解正确,它应该是真的。您可以在https://jsfiddle.net/F52y5/86/找到代码。
HTML:
<div ng-app="bugTrackerApp" ng-controller="bugTrackerController"><bug-tracker title='abcde' bugs='bugs'></bug-tracker></div>
脚本:
angular.module('bugTrackerApp', ['ui.bootstrap'])
.controller('bugTrackerController', ['$scope', function ($scope) {
$scope.bugs = [
{ severity: 'high', id: '10000', summary: 'summary 1' },
{ severity: 'med', id: '20000', summary: 'summary 2' },
{ severity: 'low', id: '30000', summary: 'summary 3' },
{ severity: 'low', id: '40000', summary: 'summary 4' },
{ severity: 'low', id: '50000', summary: 'summary 5' },
{ severity: 'low', id: '50000', summary: 'summary 6' },
{ severity: 'low', id: '50000', summary: 'summary 7' },
{ severity: 'low', id: '50000', summary: 'summary 8' },
];
}])
.directive('bugTracker', function () {
return {
restrict: 'E',
scope: {
title: '@',
bugs: '='
},
template: "<accordion><accordion-group is-open='true'>" +
" <accordion-heading>{{formatTitle()}}</accordion-heading>" +
" <table class='bug-review'><tbody ng-repeat='bug in bugs'><tr ng-class=getTrClass(bug.severity)><td>{{bug.id}}</td><td>{{bug.summary}}</td></tr></table>" +
"</accordion-group></accordion>",
controller: ["$scope", function ($scope) {
$scope.formatTitle = function () {
return $scope.title + ' (count=' + $scope.bugs.length + ')';
}
}],
replace: false,
transclude: false
};});
请注意,替换标志当前设置为true,因此内容会显示。