2015-06-17 5 views
0

Мне нужно использовать один метод управления представлением xml в другом контроллере представления XML. Вот пример (файлы контроллеров только):Проблема при получении данных из одного контроллера представления XML в другой контроллер представления в sapui5

**view1.js** 
sap.ui.controller("sap.ui.xml.view.View1", { 
    onInit: function() { 
    this.globalCount = 0; 
    loadedView1 = this.getView(); //loadedViews is a global variable which is defined in component.js 
    }, 
    increaseCount: function(){ 
    this.globalCount++; 
    } 
}); 

**view1.xml** 
<core:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" 
    xmlns="sap.m" xmlns:l="sap.ui.layout" xmlns:c="sap.ui.commons" xmlns:f="sap.ui.layout.form" 
    controllerName="sap.ui.fisa.view.OrderDetails" xmlns:html="http://www.w3.org/1999/xhtml"> 
    <Page showNavButton="true" > 
    <content> 
     <Label text="example text" /> 
    </content> 
    </Page> 

Второй Вид:

**view2.js** 
    sap.ui.controller("sap.ui.xml.view.View2", { 
     onInit: function() { 

     this.view2Count = loadedView1.getController().globalCount ; 

     } 
    }); 

    **view2.xml** 
    <core:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" 
     xmlns="sap.m" xmlns:l="sap.ui.layout" xmlns:c="sap.ui.commons" xmlns:f="sap.ui.layout.form" 
     controllerName="sap.ui.xml.view.View2" xmlns:html="http://www.w3.org/1999/xhtml"> 
     <Page showNavButton="true" > 
     <content> 
      <Label text="Second View" /> 
     </content> 
     </Page> 
</core:View> 

Я могу получить данные из загруженного зрения, но когда я пытаюсь чтобы перезагрузить view2 значение loadedView1.getController() есть null.

ответ

1

Создайте глобальную JSONModel в своем компоненте и сохраните счетчик посещений. Модель может быть сделана глобально доступной, позвонив setModel в компоненте onInit.

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