При использовании синтаксиса angularjs «controllerAs» по-прежнему целесообразно иметь контейнерный объект?

0

Я недавно нашел синтаксис controllerAs, и мне интересно, исключает ли это необходимость обертывания переменных области видимости в объекты, чтобы получить ссылку.

Извините, я, вероятно, не спрашиваю четко, но я имею в виду, являются ли обе следующие объявления безопасными друг для друга или я должен использовать объект модели при использовании контроллера. Чтобы избежать проблем с вложенными областями?

Старый метод -

$scope.model = {
    myData: "test"
}

<div ng-controller="myController">
    <input ng-model="model.test" />
</div>

ControllerAs -

$scope.myData = "test"

<div ng-controller="myController as myC">
    <input ng-model="myC.test" />
</div>
Теги:

1 ответ

1
Лучший ответ

Нет, контейнер больше не нужен, одна из основных целей контроллера. Синтаксис заключается в том, чтобы ввести этот полезный шаблон, который помогает устранить эффекты наследования наследования прототипов в области, когда они нежелательны (т.е. Почти всегда).

Наследование прототипа области может по-прежнему быть достигнуто, если необходимо, используя вместо this $scope вместо this в контроллере.

  • 0
    Спасибо, значит ли это, что я должен объявить переменные также вместо $ scope сейчас?
  • 0
    Да. Использование controllerAs идентично выполнению '$ scope.myC = this' внутри контроллера.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню