我有以下sudo html
<foo>
<span>Bar</span>
</foo>
和指令:
myapp.directive('foo', function () {
return {
restrict: 'E',
replace: true,
transclude: true,
template: '<div><p>{{usedToBeInSpan}}</p></div>'
}
});
如何提取嵌套span
节点的内容并将其指令范围内的内容设置为usedToBeInSpan
?
请注意,我实际上并没有使用它来替换嵌套标记,它只是一个简化的示例
答案 0 :(得分:1)
您可以在指令中添加链接功能,如下所示:
myapp.directive('foo', function () {
return {
restrict: 'E',
replace: true,
transclude: true,
template: '<div><p>{{usedToBeInSpan}}</p></div>',
link: function (scope, element, attrs) {
// the element argument contains the html content inside the directive tags <foo></foo>
scope.usedToBeInSpan = "";//populate from "element"
}
}
});
答案 1 :(得分:0)
找到一个新的解决方案。 Angular创建一个以指令内容命名的css类,如“ng-&lt; directive&gt; -content”,使用它可以访问使用它的指令内容。看看这个小提琴:
https://jsfiddle.net/manasisakhare/8ezh35to/2/
myapp.directive('foo', function () {
return {
restrict: 'E',
//replace: true,
transclude: true,
template: '<div><p class="ng-foo-content" ng-transclude></p></div>'
}
});