html5, angularJS с компилятором закрытия и/или библиотекой закрытия

Я рассматриваю html5, angularJS для привязки данных, а также компилятор закрытия Google и библиотеку закрытия для интерактивных веб-приложений. Они хорошо работают вместе? К сожалению, до сих пор нет подробных отчетов.

У меня есть опыт работы с Adobe Flex, но я новичок в чистом js. Таким образом, вопросы можно считать с точки зрения новичка. Нет кодовой базы, которую нужно портировать, все будет разрабатываться с нуля.

  1. Кто-нибудь еще успешно использует эту комбинацию?
  2. Есть сообщения из первых рук?
  3. Рекомендуете ли вы отдельные технологии в этом контексте или есть лучшие альтернативы для комбинирования?
  4. Есть ли хорошие примеры, проекты-примеры или даже туториалы (по комбинации, а не по отдельным технологиям)?
  5. Какие подводные камни стоит знать новичку?
  6. Существуют ли какие-либо другие ортогональные технологии, которые я также должен использовать или, по крайней мере, рассмотреть?

Некоторые более или менее релевантные ссылки я уже нашел:


person thomre    schedule 14.06.2012    source источник
comment
Новые пользователи не могут публиковать более двух ссылок, поэтому вот еще одна в качестве комментария: groups.google.com/group/closure-library-discuss/browse_thread/   -  person thomre    schedule 14.06.2012
comment
Мне нравятся вопросы такого типа, и в каком-то смысле они очень полезны, но я удивлен, почему нет попытки закрытого голосования на основании неконструктивного мнения и т. д. Непредсказуемо.   -  person Saran    schedule 30.01.2014


Ответы (2)


Компилятор закрытия

Вы определенно можете скомпилировать свой код (сам Angular скомпилирован с компилятором Closure), хотя на данный момент вы можете использовать только простые оптимизации.

В целом мы хотим, чтобы Angular хорошо работал вместе с компилятором.

Закрыть библиотеку

Внутри Google есть куча проектов, использующих библиотеку вместе с Angular.

Они используют goog.provide() и goog.require() для зависимостей. Также абсолютно просто использовать такие утилиты, как goog.isString() или goog.inherits().

Использование закрывающих компонентов пользовательского интерфейса может потребовать дополнительной работы (хотя, опять же, есть проекты, использующие это).

person Vojta    schedule 14.06.2012
comment
Вы имеете в виду простую оптимизацию или просто оптимизацию только с пробелами? Я пытался сделать просто через веб-приложение компилятора закрытия, и когда оно заменяет MyController($scope) на MyController(a) (вместе со всеми другими ссылками на $scope в контроллере), мой код ломается. - person Marc; 31.01.2013
comment
Под простой оптимизацией я подразумевал простую оптимизацию :-D Вам нужно использовать явные аннотации, чтобы DI работал с скомпилированным кодом. Например. MyController.$inject = ['$scope']; - person Vojta; 18.03.2013
comment
Уже есть проход компилятора Closure, который может делать эти аннотации автоматически для вас, надеюсь, он скоро станет открытым исходным кодом... - person Vojta; 18.03.2013

Надеюсь, это поможет

Изменить код

function MyCtrl($scope) {/* code */}

Кому

var MyCtrl = ['$scope', function($scope) {/* code */}]
person nguyên    schedule 16.03.2013