我从很短的时间开始编码角度
我得到了几个div和类的HTML。我想要迭代的那些类,并为该类中的div分配工具提示。我不想将这些角度属性放入HTML中,因为我需要动态生成它以逃避HTML中的大量代码。
例如使用
button.setAttribute ("tooltip-placement", "bottom");
Angular忽略了这一点,并且展示位置是标准的:top。
如何“说服”角度来使用我自己对角度属性的处理?
谢谢!
以下操作DOM的指令不会带来令人反感的解决方案: 尽管它出现在DOM中(检查它),但角度忽略它。 它应该弹出一个工具提示。
demoApp.directive('tooltipView',function(){ 返回{ 限制:'EA',
link: function (scope, element, attrs) {
element.attr("tooltip-placement", scope.placement);
element.attr("tooltip-html-unsafe", "testtooltip");
element.attr("tooltip-trigger", "mouseover");
}
};
})
答案 0 :(得分:0)
我认为这一切都取决于何时生成工具提示。如果在执行button.setAttribute(..)
代码之前运行工具提示代码,则无法获得预期的行为。
我的第一个建议是使用angular-bootstra's tooltip wrapper,并使用数据绑定角度来设置位置。
例如:
<... tooltip-placement="{{ scopePropertyIndicatingTooltipPlacement }}" ../>
使用您的控制器:
function MyCtrl($scope) {
$scope.scopePropertyIndicatingTooltipPlacement = "right";
}
答案 1 :(得分:0)
处理元素属性更改的正确方法是在链接函数中编译它如下(示例):
app.directive("tooltipView", function($compile) {
return {
restrict: "AE",
link: function(scope, element, attrs) {
var tooltipContent = scope.tooltipHTML;
if (!element.attr('tooltip-html-unsafe')) {
element.attr("tooltip-html-unsafe", tooltipContent);
$compile(element[0])(scope);
}
});
}
};
});