2016-09-13 7 views
0

У меня есть простой переменный тумблер на шаблоне моей директивыДолжен ли я определять только атрибуты шаблона на моем контроллере?

<div ng-mouseenter="$ctrl.myToggle = true" ng-mouseleave="$ctrl.myToggle = false"> 
... 
</div> 
<div ng-if="$ctrl.myToggle"> 
... toggled content 
</div> 

я пишу свои контроллеры с машинописью.

Должен ли я определять myToggle на моем классе контроллера, хотя он никогда не будет использоваться? (Я не нужен функция переключения, так как это единственные атрибуты, которые должны изменить)

export MyController { 

    public myToggle:boolean = false; 

    construtctor(){ 
    //... 
    } 

    //... 
} 

является это плохая практика, чтобы иметь такую ​​логику только мой шаблон?

+0

Я предполагаю, что 'атрибут' должен быть заменен на 'свойство'. Создается впечатление, что вопрос касается DOM, в то время как это касается ООП. – estus

ответ

0

Контроллер и шаблон (вид) являются частью одного объекта - директивы/компонента. Это концепция, которая была развита в Angular 2, где классы контроллеров называются классами директивы/компонента.

Поскольку он должен использоваться самим компонентом, правильно обозначить видимость свойств как private.

Недостаток метода getter/setter toggle() в некоторых случаях может считаться плохой практикой, поскольку его присутствие обеспечивает инкапсуляцию и тестируемость, но наличие toggle собственности в этом случае абсолютно то же самое.

Смежные вопросы