2016-02-10 2 views
2

Есть ли какой-либо обработчик события openui5 для изменения ориентации и изменения размера окна?openui5 event Handler for orientationchange

onInit: function() { 
    var data; 
    this.drawChart(data); // working fine 
    $(window).resize(function() { 
     this.drawChart(data); // not working 
    }); 
}, 

drawChart: function(data) { 
    //code for draw chart 
} 

ответ

2

OpenUI5 имеет встроенную функциональность для обнаружения изменения ориентации, а также при гибком изменении размера (например, настольный компьютер).

Взгляните на sap.ui.Device.orientation'sattachHandler событие:

Регистры данный обработчик событий для события изменения ориентации окна документа.

Ниже приведен пример использования sap.ui.Device.orientation.attachHandler:

sap.ui.Device.orientation.attachHandler(function(mParams) { 
    if (mParams.landscape) { 
     alert('in landscape mode'); 
    } else { 
     alert('in portrait mode'); 
    } 
}); 

Кроме использования является sap.ui.Device.media «s attachHandler для обнаружения, когда изменении размеров окна к другому range-set.

Для непосредственно прослушивания при изменении размеров окна, похоже, у вас уже есть решение для этого, просто убедитесь, что вы следить за правильной области для использования:

var self = this; 
$(window).resize(function() { 
    self.drawChart(data); 
}); 
+0

вы можете дать пример кода, используя sap.ui. Device.orientation's attachHandler –

+0

@SrinivasGadilli Я обновил свой ответ с помощью образца кода, используя sap.ui.Device.orientation's attachHandler –

+0

благодарит вас за ответ –

0

Я нашел решение

это. * Не будет работать внутри JQuery, как это имеет другой смысл там, где его инкапсулированные ... в openui5 * .view.js это означает объект вида в * .controller.js это подразумевает объект контроллера ... в jquery это подразумевает компонент, в котором он размещен, или что-то, на что он ссылается в этом контексте ... вы не можете просто смешать «это», где бы вы ни находились

sap.ui.controller ("oui5mvc.contr ollerName ") DrawChart (данные).

+0

Это «это» поведение не является специфичный для jQuery или OpenUI5. См. Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this. Есть даже [40-минутные курсы] (http://javascriptissexy.com/understand-javascripts-this-with-clarity-and-master-it/), преподающие только это ключевое слово ... – akudev

+1

Очень распространенное решение - сделать 'var that = this;' прямо перед тем, как вы начнете новый блок. Затем вы можете использовать 'that' в вашей функции jQuery, которая относится к предполагаемому' this'. – Marc

+0

@akudev Ваша первая ссылка - 404 – Marc

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

  • Нет связанных вопросов^_^