如何使用角度材质动态删除“md-tooltip”
How to dynamically remove a `md-tooltip` with Angular Material?
我有一个基本的md-button
,里面有一个md-tooltip
。虽然,如果用户使用的是移动设备,我需要一种方法来全局删除我网站中的所有工具提示。
<md-button class="md-primary md-raised">
Hello
<md-tooltip>This is a buttons tooltip</md-tooltip>
</md-button>
加载模板并运行指令后,上述内容将转换为以下内容:
<button class="md-primary md-raised md-button md-ink-ripple" type="button" ng-transclude="" aria-label="Hello">
<span class="ng-scope">
Hello
</span>
<div class="md-ripple-container"></div>
</button>
按钮元素不再包含md-tooltip
,否则我只会删除工具提示元素。
想要这样做的原因是因为在移动设备上,md-tooltip
吃了按钮点击。因此,在第一次单击时显示工具提示,在第二次单击时显示按钮单击操作。这绝对不是一个理想的效果。
如何从页面上的所有元素中删除所有工具提示,以便我的按钮单击操作是第一次单击/点击而不是第二次?
好的
,所以我之前已经成功地实现了我的建议,这是演示
我创建了另一个版本的md-tooltip
,只是为了覆盖角度材质的版本。然后我创建了一个angular.decorator
来选择将使用哪个指令版本的md-tooltip
。
app.directive('mdTooltip', function(){ //create your overriding directive
return{
replace: true,
template: '<span style="display:none"></span>',
scope: {}, //create an isolated scope
link: function(scope, element){
element.remove();
scope.$destroy();
}
};
});
app.decorator('mdTooltipDirective',function($delegate){
var version = 0;
var onMobile = false;//do your checking here
if(onMobile) //here comes the switching
version = 1;
return [$delegate[version]];
});
mdTooltipDirective
中的Directive
词很重要,告诉 Angular 我们想为指令而不是服务选择它。
编辑:我添加了一个链接函数并删除了覆盖指令放置的元素
我在他们的文档中没有看到任何关于如何做到这一点的提及。
我能想到两种方法来解决这个问题。
-
display: none
所有<md-tooltip>
如果您在移动设备上。 - 覆盖
mdTooltip
指令,然后有条件地$compile
原始 MD 工具提示或空白工具提示(如果您在移动设备上)
HTML
<md-tooltip md-direction="bottom" class="tooltip">Tooltip Bottom</md-tooltip>
CSS
@media(max-width:599px) {
md-tooltip.tooltip {
display: none !important;
}
}
根据这个issue
,md-tooltip
是错误代码。
在这种情况下,我建议您根据条件显示工具提示代码,即仅在您在 Web 浏览器中时才显示内容。
对于此任务,您可以使用ng-device-detector
库:
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- addData()从最新图表中删除.js 2.1.3-怎么了
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除CKEditor工具栏按钮,但不删除功能
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 正在删除node.js中已验证的网站
- 正在从页面中删除iframe
- 如何从 HTML 查询中删除项目
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 如何使用角度材质动态删除“md-tooltip”
- 如何在md-sidenav中添加或禁用(删除)md-disable- background