Дмитрий Иванов: сервис - общие данные для нескольких компонентов. Фабрика - данные для компонентов одного типа, например несколько селект листов, плашки с коротким описанием товара.
Дмитрий Иванов:
Как вариант в контроллере this.items = orgsItemFactory(); (я заменил $scope на this поєтому вам прийдется почитать первую ссылку) а в шаблоне $ctrl.items.data
По поводу фабрики и сервиса, https://habrahabr.ru/post/190342/
Можно возвращать и объект, как делаете вы, но лично мне привычнее запись вида
var serviceObj = function(){
this.data = {};
this.init = function() {
// Тут получаем данные с сервера через $http и сохраняем их в serviceObj.data
}
};
console.log(new serviceObj());
Зачем JQuery к ангуляру приплели, вот в чем вопрос. Даже агресивные советы нужно читать и думать над ними, это не приятно, но иногда полезное советуют.
1) Нет возможности повлиять на то, как TypeScript компилируется в Javascript поэтому заморачиваться тем правильно он это сделал или нет, ИМХО не стоит.
2) Яваскрипт быстро меняется и на смену прототипному наследованию в классическом JS приходят классы в ES6/ES7
3) Если нет необходимости поддерживать IE 11 я бы ставил опцию --target es6 или --target ESNext + обрабатівал файл бабелем
Вообще вешать в this контроллера все что не используется в темплейте не следует, засирается this и падает производительность.
Можно использовать WeakMap чтобы имитировать приватные свойства.
xtala zen: По факту, Хромовским отладчиком вполне успешно верстал сайт для большого маковского монитора (2556 ширина) да прокрутки нет, но детали я верстал на нормалном разрешении, а в режиме адаптивной верстки смотрел чтобі не разлезлось, и да, результат в дебагере может немного отличаться от реальніх девайсов, там где єто критично можно использовать платный https://www.browserstack.com/#
А теперь подумайте что делает ваш код
1) Код вида let a = c || d присвоит переменной a переменную с, а если она приводится к false присовит переменную d
2) в Вашем случае, если метод querySelectorAll не существует, попытка вызвать на нем bind приведет к ошибке.
Не нужно читать учебник по яваскрипт кусками, прочитайте его от начала и до конца.
Мало того, что для функций с одинаковым типом входящих данный перегрузка не возможна впринципе, и в класическом понимании перегрузки в яваскрипт нет, вы пытаетесь ее влепить туда, где она не нужна.
querySelectorAll возвращает вам сет дом елементов и если в выборку попадет один то будет сет, состоящий из одного элемента, с какого вы пытаетесь туда прилепить еще querySelector, который возвращает первый найденный элемент, вместо того, чтобы взять первый элемент в вашем сете, непонятно.