2012-04-28 32 views
11

Jak mógłbym stworzyć JavaScriptObject ręką kiedy mam tej klasyJak utworzyć JavaScriptObject ręcznie w GWT?

public class Person extends JavaScriptObject{ 
    protected Person(){} 

    public final native String FirstName()/*-{ 
     return this.firstName; 
    }-*/; 

    public final native String LastName()/*-{ 
     return this.lastName; 
    }-*/; 
} 

Pytam bo mam tablicę tego JavaScriptObject Peron

public JsArray<Person> persons = JavaScriptObject.createArray().cast(); 

i chciałbym pełny ta tablica z niektóre z tych obiektów Person

Peson a = new Person(); 
a.setfirstName(textField1.getText()); 
a.setLastName(textField2.getText()); 
persons.push(a) 

ale nie wiem jak stworzyć taki obiekt ręcznie. Wartości firstName i lastName wziąłbym ze składnika interfejsu użytkownika, takiego jak textField. Proszę o pomoc!

Odpowiedz

11

Powinieneś być w stanie to zrobić?

Person a = (Person)JavaScriptObject.createObject().cast(); 
+0

Wielkie dzięki. Mam dwa pytania: 1) czy istnieje różnica między twoją a tą wersją -> Person a = Person.createObject() cast(); 2) w jaki sposób mogę przekazać wartości do obiektu osoby? czy powinienem stworzyć metody setera? ale w klasach, które rozszerza JavaScriptObjects, nie wolno wprowadzać żadnych zmiennych. więc jak mogę przekazać wartości lastName i firstName do obiektu? – Pero

+1

Nie ma różnicy między dwiema metodami createObject, ponieważ jest to metoda statyczna w klasie JavaScriptObject. – krishnakumarp

+1

W drugim pytaniu rozszerzamy JavascriptObject, aby uzyskać dostęp do rodzimych obiektów JSON. Ustawicielami będą połączenia natywne, które przypisują wartość do natywnych zmiennych JavaScript. Myślę, że z tego powodu ustawili regułę, że zmienne składowe nie są dozwolone w typach nakładek. Więcej informacji można znaleźć na stronie https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsOverlay. – krishnakumarp

Powiązane problemy