gpt4 book ai didi

angularjs - 如何从 transclude 函数访问 transclusion 槽?

转载 作者:行者123 更新时间:2023-12-01 07:24:44 25 4
gpt4 key购买 nike

引入 Angular 1.5 multi-slot transclusion .根据the docs :

the transclude object { slotA: '?myCustomElement' } maps elements to the slotA slot, which can be accessed via the $transclude function



不幸的是,它没有给出任何这样的例子。它给出的唯一示例根本没有提到插槽:
$transclude(function(clone, scope) {
element.append(clone);
transcludedContent = clone;
transclusionScope = scope;
});

有人可以解释一下如何使用 $transclude 函数访问每个插槽吗?

最佳答案

我有类似的问题,但阅读 ng-transclude 的源代码有帮助。
事实证明,$transclude 函数有第三个参数,即插槽名称。

https://github.com/angular/angular.js/blob/master/src/ng/directive/ngTransclude.js#L190

简单的例子:

angular.module('app', []);

angular
.module('app')
.directive('dir', function () {
return {
transclude: {
a: 'aT',
b: 'bT'
},
link: function (scope, elem, attrs, ctrl, transclude) {
transclude(function (content) {
elem.append('<div>a</div>');
elem.append(content);
}, null, 'a');

transclude(function (content) {
elem.append('<div>b</div>');
elem.append(content);
}, null, 'b');
}
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.js"></script>

<div ng-app="app">
<dir>
<a-t>content of a</a-t>
<b-t>content of b</b-t>
</dir>
</div>

关于angularjs - 如何从 transclude 函数访问 transclusion 槽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38151606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com