Powiedzmy, że mamy namecontroller w Angularjs. Możesz zdefiniować takie zmienne:
this.name = 'Joe';
Lub:
$scope.name = 'Joe';
Zawsze lubię dzwonić do wszystkich zmiennych za pomocą notacji obiektu:
<form ng-controller="NameController as nameCtrl">
<input type="text" ng-model="nameCtrl.name">
</form>
Działa to tylko wtedy, gdy używam "tego" notacji w kontrolerze. Kiedy używam $scope
, muszę zadzwonić do "nazwy" bez nameCtrl
. aby to było działać.
Oczywiście tęsknię za bardzo podstawowymi podstawami tutaj, ale po wykonaniu badań wciąż utknąłem. Jak mogę zachować jak najwięcej nazewnictwa obiektu w moim kodzie HTML?
1 odpowiedź
Kątowy JS ma funkcję ControllerAs
. To jest to, czego teraz używasz. Odwołujesz się po prostu obiekt nameCtrl
do NameController
obiekt. I otrzymasz wartość nazwy za pomocą klonu obiektu kontrolera. Wyobraź sobie, że this
jest tylko wskaźnikiem do $scope
Oto ładne wprowadzenie techniczne: Sterowniki kątowe
Jeśli chcesz użyć obiektów wszędzie, możesz użyć Angular Service
wstrzykiwany do kontrolera, dzięki czemu można łatwo zadzwonić do dowolnego obiektu z usługi w każdym sterowniku.