javascript-旧版本中Angular替代后备内容的替代方法
作者:互联网
Transclude fallback content
是Angular V1.5.0中添加的功能之一
我正在为Angular写dateTimePicker module,并想为下一个版本添加自定义用户输入模板功能,而Transclude后备内容正是我想要的,因为如果用户在指令中未放置任何内容,则将注入默认模板.
但是我不能强迫所有人使用Angular V1.5.X
有没有其他解决方案?
另一个解决方案:
由于我有一个庞大的html模板,并且无法将其制成单行字符串或…放在JS文件中,因此我提出了Mario Lamacchia的想法.
HTML:
<div>
<ng-transclude></ng-transclude>
<div ng-if="defaultTemplate">...</div>
</div>
JS:
link: function(scope, element, attrs, ngModel) {
if (!element.find('ng-transclude').children().length) {
scope.defaultTemplate = true;
element.find('ng-transclude').remove();
}
}
解决方法:
在1.3.x版本中添加此链接函数将获得与1.5.x示例相同的结果,以包含回退内容
link: function(scope, element) {
if (!element.find('ng-transclude').children().length) {
element.find('button').append('<b style="color: red">Button1</b>');
}
}
柱塞:http://plnkr.co/edit/7VHLsv
标签:angularjs,angularjs-directive,javascript,angularjs-ng-transclude 来源: https://codeday.me/bug/20191119/2033263.html