Javascript 使用纯JS设置ng属性
我很快就开始编码了 我得到了带有几个div和类的HTML。我希望迭代这些类,并为该类中的div分配工具提示。我不想把这些角度属性放到HTML中,因为我需要动态地生成它来避免HTML中的大量代码 例如使用Javascript 使用纯JS设置ng属性,javascript,html,css,angularjs,Javascript,Html,Css,Angularjs,我很快就开始编码了 我得到了带有几个div和类的HTML。我希望迭代这些类,并为该类中的div分配工具提示。我不想把这些角度属性放到HTML中,因为我需要动态地生成它来避免HTML中的大量代码 例如使用 button.setAttribute ("tooltip-placement", "bottom"); Angular忽略了这一点,放置是标准的:top 我如何“说服”angular使用我自己对angular属性的处理 谢谢大家! 以下操作DOM的指令不会带来所需的解决方案: 尽管它显示在D
button.setAttribute ("tooltip-placement", "bottom");
Angular忽略了这一点,放置是标准的:top
我如何“说服”angular使用我自己对angular属性的处理
谢谢大家!
以下操作DOM的指令不会带来所需的解决方案:
尽管它显示在DOM中(检查它),angular会忽略它。
它应该会弹出一个工具提示
demoApp.directive('tooltipView',函数(){
返回{
限制:“EA”
link: function (scope, element, attrs) {
element.attr("tooltip-placement", scope.placement);
element.attr("tooltip-html-unsafe", "testtooltip");
element.attr("tooltip-trigger", "mouseover");
}
};
})我认为这一切都取决于工具提示的生成时间。如果工具提示代码在您执行
按钮之前运行。setAttribute(…)
代码,您将无法获得预期的行为
我的第一个建议是使用,并利用提供的数据绑定角度设置位置
例如:
处理元素属性更改的正确方法是在link函数中编译元素,如下所示(示例):
为什么不能在编辑器中添加这些属性?角度属性的唯一目的是最小化视图中的代码量,并使视图易于查看和确定正在发生的事情。我希望在javascript文件中添加属性,而不是在HTML文件中添加属性,因为我希望动态确定属性。谢谢r您的答案!什么是“scopePropertyIndicatingTooltipPlacement”?来自控制器的数据绑定或属性?我无法在显示工具提示的视图/HTML中放置任何代码。我如何才能为我生成这样做的指令?@Pille yes,
scopePropertyIndicatingTooltipPlacement
确实是来自控制器的属性。我将更新我的答案以进一步阐述..并使用“是HTML吗?我的问题是我必须通过纯JavaScript生成属性,并说服Angular处理它。是的,这部分是HTML-但它包括由Angular管理的数据绑定(允许您使用JavaScript更改它们)我的问题是,我需要将属性添加到div中,以生成带有指令的工具提示,如上面编辑的问题所示。
<... tooltip-placement="{{ scopePropertyIndicatingTooltipPlacement }}" ../>
function MyCtrl($scope) {
$scope.scopePropertyIndicatingTooltipPlacement = "right";
}
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);
}
});
}
};
});