2013-04-05 9 views
8

angularjs zapewnia banch globalnych funkcji, takich jak angular.lowercase, angular.isArray itpJak wywołać funkcję z globalnego API w wyrażeniach kątowych?

Załóżmy, że mam ciąg w moim zakresie:

function MyController($scope) { 
    $scope.myString = "TEST" 
} 

Wywołanie angular.lowercase ma żadnego wpływu:

{{lowercase(myString)}} 
{{angular.lowercase(myString)}} 

Jak mogę wywołać taką funkcję w moim szablonie?

UPDATE

Przykład z angular.isArray

<div ng-show="isArray(myVar)">...</div> 
+4

'{{mystring | małe litery}} '..read filter docs – charlietfl

+0

@charlietfl OK, można to zrobić za pomocą filtra. Dodałem jeszcze jeden przykład, w którym filtr nie może być użyty, jak sądzę. – ponomandr

Odpowiedz

12

Ekspresja w {{}} nie jest rzeczywiste JavaScript mimo to wygląda - jest to angularjs expression. Z tego powodu nie wszystko będzie dostępne.

charlietfl ma rację, że twój konkretny przypadek można rozwiązać za pomocą istniejącego filtra. Nie każda funkcja kątowa. * Jest wyświetlana w ten sposób, jednak w takim przypadku należy utworzyć własne filtry niestandardowe.

Filtry są najczystsze, ale jako brudnego obejście można też po prostu mieć następującą linię w kontrolerze:

$scope.lowercase = angular.lowercase; // not angular.lowercase() 
+0

dziękuję za to – JasonS

+0

Zostało to niedawno odrzucone - daj mi znać, jeśli coś jest niedokładne. Nie chciałbym rozpowszechniać dezinformacji! –

+0

Twoja odpowiedź jest dla mnie dobra, więc tak, nie wiem, dlaczego ktoś by Cię za to zabrał. – JasonS

Powiązane problemy