これが私がやろうとしていることです: http://jsfiddle.net/Dtg3N/
'use strict';
var navbar = angular.module('navbarApp', []);
navbar.directive('navbar', function () {
return {
restrict: 'E',
transclude: true,
scope: {},
template: '<div class="navbar"><div class="navbar-inner"><div class="nav-collapse collapse">'+
'<ul class="nav" ng-transclude></ul>'+
'</div></div></div>',
};
});
navbar.directive('navItem', function ($compile) {
var brandTpml = '<li class="brand" ng-transclude></li>';
var dropdownTmpl = '<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ title }} <b class="caret"></b></a><ul class="dropdown-menu" ng-transclude></ul>';
var simpleTmpl = '<li ng-transclude></li>';
var getTemplate = function(itemType) {
var template = '';
switch (itemType) {
case 'brand':
template = brandTpml;
break;
case 'dropdown':
template = dropdownTmpl;
break;
default:
template = simpleTmpl;
break;
}
return template;
};
var itemType;
return {
restrict: 'E',
replace: true,
transclude: true,
link: function(scope, element, attrs) {
itemType = attrs.type;
},
template: getTemplate(itemType)
};
});
要するに、ディレクティブにネストしたいと思います。「トランスクルード」がネストされた要素に対して機能しないことを除いて、ほぼ機能しています。
どうすればこの仕事を手に入れることができますか?