2015-12-07 2 views
1

Я хочу добавить функцию javascript в vaadin, чтобы она выполнялась при нажатии кнопки. До сих пор я пробовал это двумя способами.Добавление функции javascript в Vaadin

String string = "function myFunction(p) {" 
    +"alert(p);" 
+"}" 
JavaScript.getCurrent().execute(string); 
JavaScript.getCurrent().execute("myFunction('Hello');"); 

И

String string = "function myFunction(p1, p2) {" 
    +"alert(p);" 
+"}" 
+"myFunction('Hello');" 
JavaScript.getCurrent().execute(string); 

Buth оба пути закончились не успешного результата.

Обновление: Я изменил коды, чтобы они что-то напечатали. Эти два кода все еще не работают.

+0

Как вы определяете, что это не удается? – cfrick

+0

Что такое getCurrent(), который должен быть/возвращен? –

+0

@cfrick Я изменил код, чтобы он напечатал что-то на экране. Моя оригинальная функция (не эта игрушечная функция) довольно сложна, поэтому вместо этого я разместил что-то простое, что не работает. – user44697

ответ

3

Ваш код не работает, потому что ваш myFunction не зарегистрирован нигде, когда вы пытаетесь его вызвать. Что я имею в виду под этим кодом:

String string = "function myFunction(p) {" 
    +"alert(p);" 
+"}" 
JavaScript.getCurrent().execute(string); 

не имеют никакого эффекта. Чтобы правильно определить функцию в JavaScript с помощью Vaadin, вам нужно назначить ее некоторой переменной. Это простое изменение позволит код для запуска:

String string = "soReadyToHelp = function myFunction(p) {" 
     +"alert(p);" 
    +"}"; 
JavaScript.getCurrent().execute(string); 
JavaScript.getCurrent().execute("soReadyToHelp('Hello');"); 

Обратите внимание, что при интегрировании Vaadin и JavaScript вы можете найти AbstractJavaScriptComponent полезным.

+0

Работает как шарм. Спасибо. – user44697

Смежные вопросы