gpt4 book ai didi

javascript - 另一个 transclude 指令中的 Angular transclude 指令

转载 作者:行者123 更新时间:2023-11-30 16:14:30 27 4
gpt4 key购买 nike

我在另一个指令中有一个 Angular Directive(指令)。两者都使用 transclude: true

我希望如果我有以下代码(取自 plunker)我会看到同样的事情 3 次。

https://plnkr.co/edit/iIyU65WdMr4jDQyKZpt1?p=preview

JS:

angular.module('app', [])

.directive('myButton', myButton)

.directive('directiveWithDirective', directiveWithDirective)

.directive('directiveWithDiv', directiveWithDiv);

function myButton(){
return {
restrict: 'E',
transclude: true,
template: '<button ng-transclude> </button>'
};
}

function directiveWithDirective(){
return {
restrict: 'E',
transclude: true,
template: '<my-button ng-transclude> </my-button>'
};
}

function directiveWithDiv(){
return {
restrict: 'E',
transclude: true,
template: '<div ng-transclude> </div>'
};
}

HTML:

<div ng-app="app">
<my-button>
A Button
</my-button>
<br>
<directive-with-directive>
A Button
</directive-with-directive>
<br>
<directive-with-div>
<div>
<my-button>
A Button
</my-button>
</div>
</directive-with->
</div>

my-buttondirective-with-div 的行为符合我的预期。他们将自己的内容包含在模板中。

但是,directive-with-directive 没有。我希望将文本“a button”包含在 my-button 中,然后将 my-button 扩展为一个按钮。相反,我看到了一个空白指令:

<my-button ng-transclude=""> </my-button>.

我希望

<my-button ng-transclude=""><button>A Button</button> </my-button>

我的问题是:

我对此有什么误解?它与指令被 Angular 扩展的顺序有关吗?我可以改变这个吗?

我怎样才能在另一个被嵌入的指令中包含一个指令。

最佳答案

我想你可以用这个解决你的问题:

function directiveWithDirective(){
return {
restrict: 'E',
transclude: true,
template: '<my-button><ng-transclude /> </my-button>'
};
}

关于javascript - 另一个 transclude 指令中的 Angular transclude 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35720832/

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