Ruslan
https://jsfiddle.net/nk3vse5e/1/ но тут только мысли, конкретную реализацию придется допиливать
Ruslan
Дополнил*
Nafikov Ilmir
спасибо за идею)
Sergei
всем привет, кто-нибуть использовал grunt-angular-templatecache? хотелось бы так его настроить что бы он делал для каждого app свой файл с шаблонами хотябы, а еще лучше их потом слеплять вместе
Nikolai
gulp.task('html:build', function () {
gulp.src(path.src.main)
.pipe(rigger())
.pipe(gulp.dest(path.build.html))
.pipe(gulpif(argv.server, gulp.dest(server+path.build.html)));
gulp.src(path.src.app)
.pipe(rigger())
.pipe(minifyHtml({
empty: true,
spare: true,
quotes: true
}))
.on('error', errorHandler)
.pipe(ngHtml2Js({
moduleName: "ololo.html.pages",
prefix: "../tpl/"
}))
.on('error', errorHandler)
.pipe(concat("partials.min.js"))
.pipe(gulpif(true || argv.prod, uglify()))
.on('error', errorHandler)
.pipe(gulp.dest(path.build.html))
.pipe(gulpif(argv.server, gulp.dest(server+path.build.html)));
});
Nikolai
хоть и не грунт, а гулп
Sergei
благодарю, у меня проект на angular-grunt-seed, разбитый на несколько модулей, каждый со своими компонентами. на гульп нету времени переключаться, и опыта )
Bogdan
переключись на вебпак, оно того стоит)
ссори за оффтоп
Sergei
да? скажи еще, что bower не нужен!
Sergei
ок, а подскажешь годный angular-webpack стартер?
Sergei
благодарю, а как же быть с шаблонами? нужен ngtemplate-loader?
Bogdan
обычно достаточно настроить loader какой то и просто require вызывать с адресом к шаблону
он будет на выходе встроен в бандл файл приложения
Алексей
Bogdan
Bogdan
https://github.com/AngularClass/NG6-starter
Вот мощь, вроде
Bogdan
https://github.com/AngularClass/angular-starter
Есть такое же мощное и крутое, только для первого ангулара на typescript?)
Sergei
посоветуйте пожалуйста, как правильно организовать angural проект, который не является SPA,
а используется на сайте в разных местах (например авторизация/регистрация, оформление заказа, может там список товаров с подгрузкой и прочее)
Сейчас я использую примерно такую структуру из нескольких модулей:
app1
-component1
-component1_template
-component2
-component2_template
...
app2[app1]
-component1
-component1_template
-component2
-component2_template
...
итд, притом некоторые модули зависят от других (например модуль записи на мероприятие в одном из компонентов отображает компонент из другого модуля (checkout-процедура) )
правильный ли такой подход или лучше сделать одно приложение с кучей компонентов?
Anton
Вполне
Anton
Тоже на старом проекте так делал
Anton
Только у меня не апп
Anton
А модули
Sergei
на странице один единственный ng-app, в котором денамически выстраиваются зависимости
Sergei
ну да, модули
Anton
Ну норм
Ivan
Как такое может быть? (( http://joxi.ru/12MEE0QU4wWG92.jpg а кнопка так и не меняется
Anton
Gulp
Anton
Каждый модуль отдельно
Sergei
отдельно?
Sergei
понятно
Ivan
Ivan
нашел ответ на вопрос )) http://trykov.ru/apply-i-digest-v-angularjs/
Anton
Дайджест цикл
Anton
На нем все основано в нг-1х
Ivan
ага)
_
может у кого есть книжка https://www.ng-book.com/modern-ng1/
Bendyrko
@magvan777 надо было $timeout делть
Ivan
Иван
что-то я тут по кругу хожу, нужна "резиновая уточка"... сейчас всё чаще задумываюсь о переходе на ангуляр2+, и уже идея не кажется такой уж недостижимой как, скажем, месяц назад. смотрю на свой код и пытаюсь предугадать, где могут быть проблемы. и вот довольно часто встречающийся кусок кода в компонентах: this.$scope.$watch(() => this.service.data, () => { /* react on service state changing */}); как понимаю, никакого $scope нет в ангуляр2+ нет, посему ищу достойную альтернативу, и прихожу к выводу, что стандартных путей решения нет ($onChange детектит изменения только внешних биндингов, на изменения состояния сервиса это не распространяется). и вопрос... что делать-то? желательно так, чтобы потом не переписывать...
Nikolai
можно делать сеттер, и в сеттере вызывать колбек от воча
Иван
ну проблемма в том, что если думать о сеттере, то он вроде как должен быть в сервисе, при этом выполнять код компонента... ну как бы совсем ужасно, если вообще реализуемо.
Bogdan
У rxjs есть BehaviorSubject, что на метод asObservable возвращает обзербл. А с ним уже можно без проблем работать как с обычным реактивным потоком.
В сам сабжект элементы передаются через метод next, если не ошибаюсь
Bogdan
И потом можно инжектить сервис в компонент, вызывать getObservable, что вернет обзербл этого сабжекта и работать с ним как угодно со всей мощью rxjs
Bogdan
При уничтожении компонента важно делать отписку от обновлений этого обзербл, потому что может утечка памяти быть
Иван
ну как бы да... the winner is... rxjs!!! примерно к этому всё и шло, хотел услышать это от кого-то ещё. всем спасибо.
Bogdan
Я rxjs и на первом ангуларе использую, очень удобно, могу сказать
Иван
ну пока выглядит "так себе на троечку"...
Иван
если раньше это была просто пропертя сервиса нужного типа, которую можно было сразу же забиндить на вьюху, теперь это раскрытие внутренней реализации и оверхэд с перекладыванием значения из сервиса в компонент...
Иван
возможно просто с непривычки это выглядит так стрёмно, но пока я с какой-то гримасой отвращения на это всё смотрю...
Иван
как говорится: "за что боролся, на то и напоролся..."
Bogdan
Не вижу каких то особых проблем в этом :)
Куда лучше чем скоуп у первого ангулара
Bogdan
Я обычно пишу сервис апи к компоненту и дергаю его методы по необходимости. Если же нужно как то работать с данными на фронте, то пишу еще один сервис, что дергает сервис апи, обрабатывает данные как нужно, и получаю реактивный поток в компоненте для отображения с этого промежуточного сервиса
Ruslan
Не подскажете, сайт ангуляра не лежит случаем?
Sergei
да, на angularjs.org зайти не удается
Anton
Всем привет!
Anton
У кого-то еще не заходит на сайт доки?
Anton
Сюда, например
https://docs.angularjs.org/api/ng/service/$q
Ruslan
Лежит родимый
Ruslan
Совсем отказались от поддержки
Konstantin
Йо
Suicide Liza
hello may i ask something
Suicide Liza
about $http post
Suicide Liza
when i am posting some data it returns
Suicide Liza
data: [object Object]
Suicide Liza
on network
Suicide Liza
any idea?
Suicide Liza
on network
Suicide Liza
the form data
Suicide Liza
its an object
Suicide Liza
but its not encode it
Bogdan
its an object
You need JSON.stringfly method for send json to server as text
Suicide Liza
getVirtual: function (data) {
return $http({
method: "POST",
url: 'api/fetch/virtual',
data: data
});
}
Suicide Liza
i make like this
Rem1te
You data is FormData object ?
Sasha
Пагни, в общем есть такой кейс, нужно по урлу открывать диалог. Это вообще нормальная практика?
Грубо говоря, есть некая система нотификаций, которая встроена во все приложения внутри экосистемы, туда встраиваются ссылки и по переходу должен открываться диалог (confirm/cancel).
Ilya
открывать по урлу диалог - нормальная практика)