AngularJS无法识别手动设置ng属性

时间:2014-02-23 18:37:25

标签: javascript angularjs directive

当我为角度设置属性时,像工具提示放置AngularJS将无法识别它们。

考虑一下代码:

demoApp.directive('tooltipView', function () {
    return {
        restrict: 'EA',

        link: function (scope, element, attrs) {
            element.attr("tooltip-placement", scope.placement);
            element.attr("tooltip-html-unsafe", "testtooltip");
            element.attr("tooltip-trigger", "mouseover");
        }
    };
});

奇怪的是,在使用检查器检查DOM时,DOM显示了这些属性,但AngularJS没有做任何事情。在这种情况下,它没有显示工具提示。

如何强制角度处理这些属性?

2 个答案:

答案 0 :(得分:0)

如果您需要处理DOM的某些部分(某些元素及其子元素)并希望为其提供范围,则可以使用$ compile。

用法看起来像

$compile("<div ng-repeat='thing in stuff'>{{thing}}</div>")(someScopeWithStuffProperty)

因此,您编译了一段代码,该代码调用那些返回链接函数的指令的编译函数,然后对于链接函数的每个实例,使用您传递的范围变量。

可能还有其他方法可以触发Angular处理某个节点,但这是我到目前为止看到的唯一方法。

http://plnkr.co/edit/L1AsEvwwVFWg12KFNhDL?p=preview

答案 1 :(得分:0)

链接采取行动为时已晚,因此您无法进行更改。

使用 $ compile API更多信息here