编程语言
首页 > 编程语言> > javascript-旧版本中Angular替代后备内容的替代方法

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