@Beerbear

Как правильно работать с компонентом в Angular 1.5?

Делаю компонент.
app.component('changer', { 
templateUrl: 'changer.html', 
controller: changerController, 
bindings: { 
sostpr: '=', 
} 

});


<changer id="rrr" sostpr="5"></changer>

сам ченжер:

<div class="bgnk" ng-class="{'prvkl':sostpr==1,'prvikl':sostpr!=1}" value="1" ng-click="chgelem()" ng-swipe-left="chgelem(0)" ng-swipe-right="chgelem(1)" ><div class="krug" ></div></div>


контроллер:

function changerController($scope, $element, $attrs) { 
var ctrl = this; 
$scope.chgelem=function(sost){ 
alert(ctrl.sostpr) 
if (sost==undefined){ 
if ($scope.sostpr==1){ 
$scope.value=0; 
}else{ 
$scope.value=1; 
} 
}else{ 
$scope.value=sost; 
} 
$scope.sostpr=$scope.value 
ctrl.sostpr=2; 


} 

}

Как правильно вешать события? на html компонента(как в примере) или внутрь контроллера?

как узнать текущее состояние ченжера из внешнего контроллера и задать его ?
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 1
1) Внешний контроллер не может "заглянуть" в скоуп компонентов, если компонент должен сообщать о каких то изменениях его родителю, это делается через биндинг '&'
https://docs.angularjs.org/guide/component
2) содержимое контроллера компонента доступно через $ctrl, не нужно пробрасывать их в скоуп руками
https://github.com/rwwagner90/angular-styleguide-es6
Событие можно повесить и в темплейте, если вдруг будете вешать событие в конструкторе на элемент, не забудьте в деструкторе отписаться от события
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы