Я хотел написать директиву, которая применяется только к IMG
тегам на протяжении всей моей страницы, и сначала я думал, что я должен украсить каждый тег с пользовательским именем директивы, такие как:Рекомендуется или рекомендуется использовать директиву, соответствующую стандартным тегам html?
<img my-img />
.
Но, пока я собирал несколько примеров кода для этого вопроса, я решил посмотреть, будет ли директива соответствовать самому элементу IMG
. И это сработало!
Вот что я сделал: http://plnkr.co/edit/z4n4a3MN89nRNYyXKCih?p=preview
app.directive('img', function() {
return {
restrict: 'E',
link: function (scope, element) {
element.bind('load', function() {
element.addClass('fadeIn');
});
element.bind('error', function() {
element.removeClass('fadeIn');
});
}
};
});
Как вы можете видеть, я хотел, чтобы все изображения на странице, чтобы исчезать, когда они загружены. Я хотел сделать это угловатым способом, не используя jQuery, поэтому я подумал, что это хороший подход, но это хорошая практика? В моем случае я действительно хочу, чтобы эта логика применима ко всем изображениям на моей странице (и может быть сотни), поэтому я думал, что это будет чистый способ сделать это, но для жизни у меня нет где-нибудь там, где это делает кто-то другой (т. е. сопоставление директивы с тегом IMG
или любым стандартным тегом).
Я из той же мысли, которая хотела бы избежать использования директивы img, но я в уникальной ситуации, когда мы использовали жесткий контроль. Это строго внутреннее приложение и работает только на одной машине в браузере Chrome. –
Я действительно хочу затушить все изображения. Это приложение очень тяжелое изображение, показывающее серьезные списки сотен изображений, изменение фоновых изображений для разных областей приложения и т. Д. Я протестировал решение, которое я получил в образце plunker, и это делает приложение очень жидким и гладким , поэтому я могу придерживаться этого, пока не придумаю что-то лучше. –