Funkcje niestandardowe

Aby zwiększyć elastyczność obsługi danych na stronach i w widokach, można tworzyć niestandardowe funkcje JavaScript.
  • Na stronie zdefiniuj niestandardową funkcję JavaScript w niestandardowym kodzie HTML, w obrębie znaczników produktu <script> .
  • W przypadku widoków niestandardowe funkcje JavaScript należy definiować w edytorze Wstawiany skrypt JavaScript w obszarze Zachowanie.

Korzystanie ze słów kluczowych this i page

We wstawianym skrypcie JavaScript widoku słowo kluczowe this używa początkowego globalnego zasięgu kontekstu wykonywania. Oznacza to, że słowo kluczowe this odnosi się do samego widoku i że może też odnosić się do każdego widoku, który jest w nim osadzony.

W poniższym przykładzie formularz logowania zawiera tekst i widok hasła zdefiniowany na stronie, wraz z identyfikatorami sterowania i. Warto zwrócić uwagę na sposób użycia słowa kluczowego this we wstawianym skrypcie JavaScript. Funkcja jest zdefiniowana w kontekście widoku this . Dotyczy to także zmiennych definiowanych w tej funkcji.

Słowa kluczowego page można używać albo w niestandardowym kodzie HTML, albo we wstawianym skrypcie JavaScript widoku. Słowo kluczowe page odnosi się do widoku strony najwyższego poziomu, co oznacza, że można uzyskać dostęp do widoków na tej stronie, a także do widoków, które zostały w nich zagnieżdżone. W przypadku zagnieżdżonych widoków należy zdefiniować ścieżki. Na przykład, jeśli próbowano uzyskać dostęp do identyfikatora elementu sterującego w widoku na poziomie strony, należy określić ścieżkę w sposób przedstawiony poniżej:

Należy zauważyć, że w tej metodzie definiowania funkcji nie jest używane słowo kluczowe poprzedzające nazwę funkcji, ponieważ ta funkcja jest jednoznaczna na poziomie strony. Należy również zwrócić uwagę na sposób użycia słowa kluczowego page zamiast thisoraz ścieżkę, która ma być zdefiniowana w funkcji. W tym przykładzie jest to identyfikator elementu sterującego widoku, który jest identyfikatorem elementu sterującego tekstu.

Wywoływanie funkcji niestandardowych

Gdy funkcja zostanie zdefiniowana za pomocą jednej z opisanych wcześniej metod, dostęp do niej można uzyskać za pomocą procedur obsługi zdarzeń dowolnego widoku. Aby wywołać funkcję, użyj lub w opcjach konfiguracyjnych procedury obsługi zdarzeń. W poniższym przykładzie funkcja niestandardowa zostanie dodana do procedury obsługi zdarzeń przycisku.

Gdy funkcja jest zdefiniowana na większej liczbie poziomów (np. na stronie i w widoku), wywoływaną wersją jest ta, która jest najbliższa widoku. W naszym przykładzie, ponieważ jest zdefiniowany zarówno na poziomie strony, jak i widoku, wywoływana jest wersja, która jest zdefiniowana w samym widoku. Najpierw są wyszukiwane funkcje, które są zdefiniowane na tym samym poziomie co wywołanie. Następnie są sekwencyjnie przeszukiwane poszczególne poziomy, aż zostanie znaleziona zdefiniowana funkcja.

W widoku złożonym zdefiniowane dla niego funkcje mają pierwszeństwo przed funkcjami o takiej samej nazwie, które są zdefiniowane w niestandardowym kodzie HTML lub w polu treści na stronie. Ponadto, jeśli istnieje widok pośredni z polem treści, które ma funkcję o takiej samej nazwie, jest wywoływana funkcja w tym widoku pośrednim, a nie funkcja w rzeczywistym elemencie macierzystym. Widok-liść nie wie, czy pole treści ma tę funkcję. Jeśli zostanie wywołana niewłaściwa funkcja, to nie będzie ona działać. Takie zachowanie może powodować problemy. Na przykład wtedy, gdy programista używa gotowej biblioteki narzędziowej przypadkowo zawierającej widok z polem treści, które ma funkcję o takiej samej nazwie.
Ważne: Aby uniknąć kolizji nazw lub konfliktów nazw, należy użyć unikalnych nazw funkcji, dodając przedrostki lub przyrostki do funkcji zdefiniowanych w widoku złożonym.

Tworzenie funkcji niestandardowych z parametrami

Funkcję niestandardową można także przekazywać w argumentach, dzięki czemu można ją ponownie wykorzystywać w innych typach widoków. Metodą powszechnie używaną w wielu widokach jest metoda setLabel. Istnieje możliwość utworzenia pojedynczej funkcji z parametrem.

Parametr changeLabel otrzymał parametr. Następnie można wywołać metodę względem tego elementu sterującego. W tym przypadku wywołano metodę setLabel , aby zmienić etykietę na. Funkcję changeLabel można wywołać z jednego ze zdarzeń widoku.

Dodano widok tekstowy, który wywołuje funkcję changeLabel z zdarzenia. Do tej funkcji nie trzeba przekazywać argumentu, ponieważ widok elementu sterującego jest zawsze przekazywany w pierwszym argumencie. Dopóki widok ma wywołaną metodę w funkcji niestandardowej, funkcja niestandardowa będzie działać z różnymi typami widoków.

Więcej informacji na temat dostępnych metod zawiera sekcja Interfejs API pakietu interfejsu użytkownika JavaScript.