#angularjs
#angularjs
Вопрос:
У меня есть куча мест, где мне нужно добавить ng-show к элементу, чтобы скрыть его. Можно ли это сделать из одного места в коде?
Поэтому вместо этого шаблона:
<tr my-row ng-show="$ctrl.model.toShow()"></tr>
Это должно быть:
<tr my-row ></tr>
а затем в директиве:
function myRow (){
return {
restrict: 'A',
templateUrl: 'my-row.html',
..
link = function(scope,el,attrs){
scope.$watch('modle.toShow', function(){
//something here?
})
}
};
}
Ответ №1:
Внесите эти изменения в функцию link, и это добавит атрибут ng-show
в вашу директиву my-row .
var app = angular.module('app', [])
.directive('myRow', function($compile) {
return {
restrict: 'A',
templateUrl: 'my-row.html',
link: function (scope, element, attrs) {
var attr;
element.attr('ng-show', true);
var fn = $compile(element);
return function(scope){
fn(scope);
};
}
};
})
Комментарии:
1. Добавлен плунжер, пожалуйста, проверьте.