如何覆盖现有指令而不是另一个

时间:2015-03-17 08:42:18

标签: jquery angularjs

这是我的指示

myDirectives.directive('registerSuccess', function($timeout) {
    return {
        restrict: 'E',
        replace: true,
        template: "<div class='alert alert-success alert-dismissable'></div>",
        link: function(scope, elm, attrs) {

            scope.registerSuccess = function(data) {
                alert(data);
                var msg = "Database "+data+" got registered"
                console.log(elm.attr('style'));
                elm.text((elm.html()||msg));
                elm.removeAttr('style');
                $timeout(function(){
                    elm.hide();
                }, 8000);
            };

        }
    };
});

它只显示第一个数据名称,但是当第二个数据被注册时,它不能显示第二个名称,因此它只显示第一个数据名称

在我的控制器中

$scope.registerSuccess(data.dbName);

在我的HTML中

<register-success style='display:none;'></register-success>

1 个答案:

答案 0 :(得分:0)

当你第二次调用$ scope.registerSuccess函数时,elm.html函数(在你的链接函数中)返回你第一次设置的有效html。因此,即使&#34; msg&#34;变量有第二个名字。