
Stas
18.05.2018
08:28:41
если ангулярщики джс увидят мой код, они сами попросят меня перейти на 2+

Kaster
18.05.2018
08:29:01
Аа

Sergey
18.05.2018
08:29:05

Google

Kaster
18.05.2018
08:29:07
А я не знала

Sergey
18.05.2018
08:29:48

Stas
18.05.2018
08:30:05
бедный совёнок
как там статистику проверять

Sergey
18.05.2018
08:32:03
Да дай погрустить. EOL нг1 объявлен, всё тлен. И статистика и вообще всё.

Stas
18.05.2018
08:32:22
что за еол

Sergey
18.05.2018
08:32:43
EndOfLife

Stas
18.05.2018
08:33:23
а

Sergey
18.05.2018
08:33:25
Конец жизненного цикла ПО. Ну это уже давно понятно было как бы, старые сторонние компоненты заброшены, новые не появлются.

Stas
18.05.2018
08:33:31
земля ему пухом
да правильно, я из за незнания в него забрёл
пусть вообще инфу про него удалят отовсюду
начал знакомиться когда с ангуляром, что-то мне взбрело в голову начать с 1го, но я не знал что они абсолютно разные

Google

Sergey
18.05.2018
08:35:44
Не ну чтобы понять какой нг2+ хороший в принципе надо поесть нг1

Kaster
18.05.2018
08:45:55
на Ng2 кто на чем пишет?js, dark or ts?

Andrey
18.05.2018
08:47:46
TS
dart слабая поддержка в новыч фичах

Kaster
18.05.2018
08:48:21
Ммм

Sergey
18.05.2018
08:49:59

Andrey
18.05.2018
08:50:31
ууу, я бы юзал, но там еще хуже
реально, я бы писал фронт с использованием kotlin, но увы, пока же это как-то хреново

Valera
18.05.2018
08:54:39
Привет
Есть компонент
Который реагирует на действие ng-change
По логике, он должен срабатывать только когда значение select изменится
Но почем-то уже при старте приложения он срабатывает много раз
В чем может быть ошибка?
В родительском контроллере функция:
$scope.SelectedRow = function(){
console.log('777');
}

Sergey
18.05.2018
08:58:51
А change это чего - колбэк?

Valera
18.05.2018
08:59:09
да

Sergey
18.05.2018
08:59:35
Это у вас он там так задан в отладочных целях?

Google

Valera
18.05.2018
08:59:44
да
смысл в том, что б при вызове компонента в представлении надо в параметре (change) указать имя коллбека, который в родительском контроллере
Коллбек должен реагировать на изменение select

Sergey
18.05.2018
09:01:13
А чего вы его не через & передаёте в биндингах?

Valera
18.05.2018
09:01:47
Когда передаю через & - вообще ничего не срабатывает

Sergey
18.05.2018
09:02:08
Покажете пример?

Valera
18.05.2018
09:02:25
Только change: '&',
В консоли пусто после изменения select

Sergey
18.05.2018
09:03:00
Да не, я про рабочий планкр, где это бы воспроизводилось

Valera
18.05.2018
09:03:30
Пока негде :(

Sergey
18.05.2018
09:03:37
Так нам всем было бы легче гораздо)

Valera
18.05.2018
09:03:37
Могу через тим вьювер дать доступ

Sergey
18.05.2018
09:04:10
Ой нет, по тв я пас

Valera
18.05.2018
09:04:52
Возможно, когда ставлю change: '&',
Надо в шаблоне как-то изменить эту строку?
ng-change="$root.change"

Sergey
18.05.2018
09:05:06
Да
Дёргать $ctrl.change()

Valera
18.05.2018
09:06:51
Уже лучше, спасибо
Но при старте приложения всё равно один раз срабатывает

Sergey
18.05.2018
09:07:45
А у вас модель точно не меняется?

Valera
18.05.2018
09:09:08
У select есть пустое значение
<option selected disabled value="">{{'Index.Select'|translate}}</option>

Google

Valera
18.05.2018
09:09:11
Это влияет?

Sergey
18.05.2018
09:09:45
Ну если вы его селектите по дефолту, то да, значение должно поменяться
Если у опшна убрать selected что-нибудь поменятеся?

Valera
18.05.2018
09:12:49
Нет

Sergey
18.05.2018
09:15:34
Помониторьте изменения в $onChanges
А вам там точно = биндинг нужен?

Valera
18.05.2018
09:21:15
для модели?

Sergey
18.05.2018
09:22:33
Ну да

Valera
18.05.2018
09:23:42
Не уверен
Работа с моделями только в родительском контроллере

Sergey
18.05.2018
09:26:14
Просто в компонентах вроде через < передают
+ колбэк на изменение
Хотя один хрен для ссылочных типов там ссылка будет
Ну или я тупой и не понимаю или deepCopy надо самому делать и в чём тогда разница

Valera
18.05.2018
09:29:26
Ещё проблема:
выбираю 1 пункт списка, в консоль выводится null
выбираю второй, в консоль выводится, что выбран первый
То есть вместо только что выбранного почему-то выводится предыдущий выбранный элемент

Bohdan
18.05.2018
09:31:04

Valera
18.05.2018
09:31:24
Коллбек:
$scope.changeCreditProduct = function(){
console.log('Product:');
console.log($scope.creditProductIndex);
}
View:
<select-group model="creditProductIndex" my-name="loanType" label="{{'Application.AvailableLoan'|translate}}" change="changeCreditProduct()">
<option selected disabled value="">{{'Index.Select'|translate}}</option>
<option ng-repeat="credit in creditProductsData" value="{{$index}}">{{credit.name}}</option>
</select-group>

Bohdan
18.05.2018
09:32:28
что за селект гроуп?

Google

Sergey
18.05.2018
09:32:44
Ну компонент же

Valera
18.05.2018
09:32:52
Если не использовать компонент, а сделать обычный select с ng-change="changeCreditProduct()" , то всё работает как надо
Если сделать change: '=',
Тоже работает как надо, но срабатывает 2 или 3 раза

Sergey
18.05.2018
09:50:01
Для колбэков не просто так отдельный тип биндинга
Кстати разница между < и = может в том что первый на родителе вотчер не создаёт, хм

Valera
18.05.2018
09:53:27
Если ставлю <, то модель всё время undefined

Sergey
18.05.2018
09:55:42
Потому что в родитель не приходит оповещение об обновлении модели
Вам нужен колбек в дочернем который будет агриться когда модель поменялась
Ну в смысле передача колбэка в дочерний через биндинг
Расширьте ваш changed значением
И в родителе в колбэке принимайте новое значение и кладите его в creditProductIndex

Valera
18.05.2018
10:53:03
Пока только так решил
$timeout(function(){
console.log($scope.creditProductIndex);
});

Sergey
18.05.2018
10:55:08
Норм

Aibek
18.05.2018
10:55:12
всем привет, сейчас будете ругать)
но вопрос)
как из контроллера модель в шаблон передать?

Valera
18.05.2018
10:55:40
{{variable}}
В контроллере: $scope.variable = 'data'

Sergey
18.05.2018
10:56:45
В нг1 для передачи есть 100500 способов

Aibek
18.05.2018
10:58:20
angular.module('app').controller('ReviewController', ReviewController);
ReviewController.$inject = ['ReviewService'];
function ReviewController(ReviewService) {
var vm = this;
vm.service = ReviewService;
vm.models = {
reviews: [1,2,3],
};
вот как во вьюшке рипитом пройтись по модели reviews)

Sergey
18.05.2018
11:00:31
Если у вас используется темплейт с controllerAs для контроллера, то в темплейте надо обращаться к объекту контроллера через псевдоним, в вашем случае наверное это будет ng-repeat="review in vm.models.reviews"

Aibek
18.05.2018
11:03:14
я без route
в темплейте просто пишу ng-controller
дальше также vm.models.reviews?