Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用纯JS设置ng属性_Javascript_Html_Css_Angularjs - Fatal编程技术网

Javascript 使用纯JS设置ng属性

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

我很快就开始编码了

我得到了带有几个div和类的HTML。我希望迭代这些类,并为该类中的div分配工具提示。我不想把这些角度属性放到HTML中,因为我需要动态地生成它来避免HTML中的大量代码

例如使用

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);
        }
    });    
   }    
  };
});