2016-04-06 23 views
2

ich einige Code wie diesesExtJS Ansichtsmodell Typ

gesehen viewModel: { type: 'uservm', },

In der Dokumentation ich das

Ansichtsmodell lesen kann: String/Objekt/Ext.app.ViewModel Das Ansichtsmodell ist ein Daten Provider für diese Komponente und ihre Kinder. Die Daten, die in ViewModel enthalten sind, werden normalerweise verwendet, indem Bindekonfigurationen zu den Komponenten hinzugefügt werden, die diese Daten präsentieren oder bearbeiten möchten.

Wenn dieses Attribut gesetzt ist, wird das ViewModel erstellt und verweist auf eine vererbte viewModel-Instanz von einem Vorgängercontainer als "parent". Die ViewModel-Hierarchie unterstützt nach der Erstellung nur die Erstellung oder Kinderzerstörung. Das übergeordnete Element eines ViewModel kann nicht im laufenden Betrieb geändert werden.

Wenn es sich um ein ViewModel auf Stammebene handelt, wird die Datenmodellverbindung mit dieser zugeordneten Datensitzung der Komponente hergestellt. Dies wird durch Aufruf getInheritedSession bestimmt.

Defaults auf: {$ value: null, faul: true}

Objekt verbindet mich zu einem Objekt docs (offensichtlich)

Ext.app.ViewModel nicht type Eigenschaft.

Frage ist: was ist das type Eigenschaft, wo ich darüber lesen, was andere Eigenschaften sind für viewModel Deklaration zur Verfügung?

Antwort

4

Sie können einen alias für Ihre Ansichtsmodelle festlegen (unter Verwendung des Namensbereichs viewmodel).

Liste der kurzen Aliase für Klassennamen. Ein Alias ​​besteht aus einem Namespace und einem Namen, die durch einen Punkt als verkettet sind.

+0

das ist so einfach wie 'alias' eines' Component' und 'xtype' welche verwendet diese Alias? – llamerr

+1

Ja, Komponenten verwenden den Widget-Namespace, während View-Modelle den Viewmodel-Namespace verwenden. –

4

Ein Beispiel die Verwendung von Alias ​​und Art zu klären:

Ext.define('MyApp.view.main.MainModel', { 
    extend: 'Ext.app.ViewModel', 
    alias: 'viewmodel.myapp-main', 

    data: { 
     stuff: 42 
    } 
}); 

Ext.define('MyApp.view.main.Main', { 
    extend: 'Ext.Panel', 

    viewModel: { 
     type: 'myapp-main' 
    } 
    // viewModel now has data.stuff = 42 
}); 
+0

danke für die antwort, aber @cd war etwas früher (hovewer ich noch upvoting deins, da beispiel ist gut) – llamerr

+0

Danke, das beispiel war ihre antwort zu klären. –