2014-11-16 26 views
5

Ben bir şablondan benim açısal denetleyici işlevine başvurmak isterseniz, böyle, $scope İşlevin olmalıdır:angularjs denetleyici işlevleri iyi uygulamalar

[template] 
<button ng-click="doSomething()"></button> 

[controller] 
$scope.doSomething = function(){}; 

Ama ne diğer fonksiyonlar (ve denetleyici değişkenleri hakkında o Şablonlara başvurmayacağım olanlar, izlemeye ihtiyacım yok).

Bunların hepsini de '$ scope' içine koymalı mıyım? Performans için kötü değil mi? $scope dışında bu tür işlevleri bildiren herhangi bir yakalama var mı?

+1

Bunları kapsam içine almamalısınız. Sadece onları denetleyici içinde düzenli işlevler ve değişkenler gibi tanımlayın. –

+0

@MadhurAhuja, this.myFunction = .. 'veya' var myFunction = ... '? – Anri

+0

İşlevlerim myFunction() {...} 'seçeneğini tercih ediyorum. Var myFunction = ... 'ile ilgili sorun, yalnızca bildirildikten sonra çağrılabilir. –

cevap

5

Bunları basitçe denetleyicinin işlevi içindeki özel işlevler olarak tanımlayabilirsiniz. Ben de size ne olup bittiğini görmek için çalışırken bilişsel yükü azaltır altta ilan tüm fonksiyonlara sahip izin verdiğinden bir değişkene işlev ifadesini atama yerine işlev bildirimi sözdizimini lehine

Not.

app.controller('MainCtrl', function ($scope) { 
    $scope.exposedFn = exposedFn; 

    function exposedFn() { 
     fnNotExposed(); 
    } 

    function fnNotExposed() {} 

}); 
İlgili konular