4

Оригинальный выпуск для потомством (см обновления)UPDATE: Адаптивные изображения в AngularJS

У меня есть веб-сайт Angular.js Я здание, чтобы быть отзывчивыми. Я хотел использовать отдельные изображения разрешения для разных ширины браузера. Итак, я наткнулся на Picturefill.js, который кажется, что он будет работать отлично.

Проблема только в том, что picturefill.js работает только после загрузки DOM. Я использую шаблон Angular и частичную HTML-страницу для конкретной страницы, на которой он включен, поэтому мои изображения не загружаются, если я не изменяю размер окна браузера.

Это отмеченная проблема (№ 35) на странице github picturefill, но они, казалось, думали, что это не большая проблема, и закрыл ее. Там есть предложение о том, как сделать отложенную загрузку работы по заполнению картин, но я боюсь, что это над моей головой.

Вот ссылка на source code for picturefill.js. Я могу включить мой код, если это необходимо, но, похоже, это большая проблема с библиотекой и то, как она должна была использоваться, чем что-либо еще.

ОБНОВЛЕНИЕ: Для всех, кто пытается понять это, я нашел AngularJS directive, написанный для включения отзывчивых изображений. Это очень новое, и я не смог заставить его работать, но, похоже, он обещает.

2nd UPDATE: У этой директивы была ошибка, но с тех пор она исправлена. Теперь он корректно работает на моем сайте AngularJS. Если вы используете динамические маршруты в своем проекте, эта директива не совсем работает. Итак, в моем случае у меня был динамический маршрут app/:objectID, который вытащил один объект JSON на страницу (каждая страница имела URL-адрес, например app/1, app/2, для объекта 1 и объекта 2). Поскольку этот маршрут никогда не менялся, я думаю, что эта директива не оправдалась.

Мой взлом, который я не понимаю? Измените waiting = true на waiting = false на линии 97. Я не мог найти никаких недостатков/побочных эффектов, и он получил директиву, которая работает для моего прецедента.

+0

У меня такая же проблема. Я проверю эту директиву AngularJS, но любой прогресс или новости? –

+0

Да! На этом фронте есть хорошие новости. См. Обновление. Директива должна работать из коробки, если у вас нет динамического маршрута $ в вашем проекте. – xEmptyCanx

+0

Ницца! Я загрузил ZIP, но как его интегрировать в мое текущее приложение AngularJS? Я имею в виду, что я вижу все дополнительные файлы, такие как 'bower.json',' package.json', 'Gruntfile.js', тестовая папка и т. Д. Не уверен, что мне нужно что-либо сделать с ними. –

ответ

4

Посмотрите на Angular Picture. Вдохновленный @Tina, он использует синтаксис Polyfill 2.0, то есть новый элемент HTML5 picture.

+0

Я не реализовал это, но похоже, что Угловой далеко зашел в пользу использования этого элемента. Хорошее предложение человека. – xEmptyCanx

0

Я также хотел использовать Picturefill с AngularJS, но вместо того, чтобы попробовать другое упомянутое решение, я решил разработать this AngularJS directive для использования Picturefill с AngularJS. Предоставляются инструкции по его внедрению, а также demo. Он работает как с статическими, так и с динамическими данными, предоставляемыми областью, и может быть установлен с помощью беседки.