Как использовать переход в следующем случае. Цель состоит в том, чтобы использовать разметку в файле html (partials), чем определять ее в шаблоне (внутри директивы).
Я нашел здесь большую директиву деревьев. (источник) Оригинал: http://jsfiddle.net/n8dPm/
Вместо того, чтобы определять шаблон в директиве, я пытался использовать переведенный контент. Я также обновил Angular до 1.2.0.rc2. Обновлено: http://jsfiddle.net/aZx7B/2/
получил ошибку ниже
TypeError: свойство '$ transclude' объекта [object Object] не является Функция
код:
module.directive("tree", function($compile) {
return {
restrict: "E",
transclude: true,
scope: {family: '='},
template:
'<ul>' +
'<li ng-transclude></li>' +
'<li ng-repeat="child in family.children">' +
'<tree family="child"></tree>' +
'</li>' +
'</ul>',
compile: function(tElement, tAttr) {
var contents = tElement.contents().remove();
var compiledContents;
return function(scope, iElement, iAttr) {
if(!compiledContents) {
compiledContents = $compile(contents);
}
compiledContents(scope, function(clone, scope) {
iElement.append(clone);
});
};
}
};
});
<div ng-app="myapp">
<div ng-controller="TreeCtrl">
<tree family="family">
<p>{{ family.name }}</p>
</tree>
</div>
</div>
Изменить:
С предложением Дэвида внес некоторые изменения. http://jsfiddle.net/aZx7B/3/
теперь, он печатает, Родитель. изменение, family
→ treeFamily
не работает, хотя