prestazioni AngularJS è influenzato dal numero di impegnare la vista attualmente caricato (page) e utilizza gli orologi che si imposta manualmente utilizzando $watch
. Tutto questo vincolante funziona solo su proprietà dichiarate su $ scope.
Ciò significa che se non si sta vincolando una proprietà per visualizzarla o non la si guarda, è meglio non dichiararla su $ scope (detto anche evitando l'inquinamento da ambito).
Venendo a this
, come spiegato nel SO inserire this
trovi contesto diverso quando viene richiamato da angolare (come nel caso di ng clic) e quando viene creato controllore.
Quindi tutto ciò che si dichiara su this
(quando si fa riferimento al controller) tecnicamente non può essere associato alla vista poiché non è dichiarato nell'oscilloscopio.
Ma Angular ha trovato una sintassi controller as
in cui ci consente di utilizzare proprietà e metodo sull'oggetto controller. In tale scenario, le proprietà dichiarate sul controller sono associate nella vista utilizzando la sintassi ctrl.prop
. Internamente angolare fa qualcosa di simile quando si fa ng-controller='HomeController as ctrl'
$scope.ctrl=this
che in pratica significa angolare annette l'oggetto controller completo al $scope
e quindi vincolante con proprietà del controller funzionano.
Quindi, l'unica cosa che importa in termini di prestazioni è il numero di rilegature da guardare.
possibile duplicato di [questo vs $ scope nei controller AngularJS] (http://stackoverflow.com/questions/11605917/this-vs-scope-in-angularjs-controllers) –
si prega di leggere chiaramente la domanda, non sto chiedendo deferenza Sto chiedendo qualcos'altro – Yogesh
riferimento: https://github.com/johnpapa/angular-styleguide –