Как переопределить существующую директиву над другой

70
2

Это моя директива

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

}
};
});

Он отображает только первое имя данных, но при регистрации 2-х данных он не может отображать второе имя, поэтому он отображает только одно имя

В моем контроллере

$scope.registerSuccess(data.dbName);

В моем html

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

спросил(а) 2015-03-17T11:42:00+03:00 5 лет, 8 месяцев назад
1
Решение
93

Когда вы вызываете функцию $ scope.registerSuccess во второй раз, функция elm.html (в вашей функции ссылок) возвращает действительный html, который вы установили в первый раз. Поэтому вы всегда видите первое сообщение, даже если переменная "msg" имеет второе имя.

ответил(а) 2015-03-17T12:03:00+03:00 5 лет, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема