Chciałbym wiedzieć, jaka jest główna różnica między składnią "Controller as" lub "$ scope" w angularjs.
- Czy mają one wpływ na wydajność, jeśli tak, to jaka składnia jest preferowana.
- Składnia "Controller as" z pewnością poprawia czytelność kodu, ponieważ Knockout.js i inne struktury JavaScript mają tę samą składnię.
$ zakres zapewni zakresu dziedziczenia, które czasami dają nam dziwne zachowanie jak
<div ng-controller="firstController"> ParentController: <input type="text" ng-model="parent"/> <div ng-controller="secondController"> ChildController: <input type="text" ng-model="parent" /> </div> </div> app.controller('ParentController', function ($scope) { $scope.parent = "parentScope"; }).controller('ChildController', function ($scope) { /*empty*/ });
a) Początkowo dziecko dostanie właściwość nadrzędnego i wyświetla „parentScope”, gdy aktualizujemy rodzic dziecko będzie również uzyskać zaktualizowane. Ale jeśli zmieniliśmy właściwość potomną, aktualizacja jednostki nadrzędnej nie modyfikuje elementu potomnego, ponieważ ma własną właściwość zakresu.
b) Jeśli korzystam z kontrolera jako dziecko zmieniające składnię, dziecko również aktualizuje rodzica.
Mam problem z podobną implementacją Twojej odpowiedzi, zobacz http://stackoverflow.com/questions/38315538 – Cody