class添加到指令中的元素,但不反映在页面上

时间:2014-09-14 18:46:31

标签: angularjs angularjs-directive

以下是我的指令中的代码。

template: '<button class="btn"><i class="fa fa-thumbs-o-up fa-2x"></i></button>'
link: function(scope, elem, attrs) {
    elem.bind('click', function() {
        elem.find('button').addClass('btn-success');
    });
}

在控制台中,它显示该类已添加到元素中。 但不反映在页面上。

1 个答案:

答案 0 :(得分:0)

AngularJS不会在运行时对添加的类做出反应。您需要使用新类编译元素才能使其工作,请尝试:

app.directive('MyButton', function($compile)
    return {
        template: ...
        link: function(scope, elem, attrs) {
            elem.bind('click', function() {
                elem.find('button').addClass('btn-success');
                $compile(elem)(scope);
            });
        },
    };
});