2016-07-25 2 views
0

Я написал приложение SAPUI5 в Eclipse с mockdata. Когда я звоню конкретный метод в formatter.js для заполнения изображения источник-свойство метод «formatMapUrl» не получает выполняется:Метод в formatter.js не называется

Object.view.xml: 
    <Image src="{ parts: [ 'ToSupplier/Address/Street', 'ToSupplier/Address/PostalCode', 'ToSupplier/Address/City', 'ToSupplier/Address/Country' ], formatter: '.formatter.formatMapUrl' }"/> 

Другие методы файловым formatter.js в настоящее время называется в том же файле :

Object.view.xml: 
<ObjectHeader id="objectHeader" title="{ProductID}" number="{ path: 'Price', formatter: '.formatter.numberUnit' }" 
       numberUnit="{CurrencyCode}" responsive="true"> 

Это соответствующий метод:

formatter.js: 
    formatMapUrl : function (sStreet, sZIP, sCity, sCountry) { 
     return "https://maps.googleapis.com/maps/api/staticmap?zoom=15&size=640x400&markers=" + jQuery.sap.encodeURL(sStreet + ", " + sZIP + " " + sCity + ", " + sCountry); 
    } 

метод сам по себе должен быть прав тоже, потому что я использовал его в других приложениях. Динамические пути должны быть правы (например, «ToSupplier/Адрес/Street»), потому что я успешно использовал их в том же самом приложении, и файл, как это:

Object.view.xml: 
    <StandardListItem icon="sap-icon://map" title="{ToSupplier/Address/City}"/> 

Я пытался отладить приложение в браузере через Интернет консоль в firefox и выяснили, что метод не выполняется.

В другом приложении я создал модель «Address.json» и успешно использовал его, как это:

<Image src="{ parts: [ 'address>/Street', 'address>/ZIPCode', 'address>/City', 'address>/Country' ], formatter: '.formatter.formatMapUrl' }"/> 
+0

~ Вы установили 'data-sip-ui-xx-bindingSyntax =" complex "' в ваш скрипт начальной загрузки? Это требование часто упускается из виду при использовании fomatters ~ Теперь я вижу, что другие функции вызываются, так что это не проблема, видимо, – Qualiture

+0

Я пробовал - ничего не изменилось. – Nighty

ответ

1

Запись должна быть

<Image src="{ 
    parts: [ 
     { path: 'ToSupplier/Address/Street' }, 
     { path: 'ToSupplier/Address/PostalCode' }, 
     { path: 'ToSupplier/Address/City' }, 
     { path: 'ToSupplier/Address/Country' } 
    ], 
    formatter: '.formatter.formatMapUrl' 
}" /> 

(Примечание каждый path свойства для parts массива)

+0

Нет, это, по-видимому, не обязательно, - проверил его уже. – Nighty

+0

Странно .... и если вы ограничиваете вызов функции до одного параметра, то есть 'src =" {path: 'ToSupplier/Address/Street', formatter: '. Formatter.formatMapUrl'} "- это функция, тогда называется? – Qualiture

+0

Хорошо, что вся строка с «возвратом» называется 9 раз. 1-5) Ни один из параметров не заполняется. 6) Улица («Calvinstraße») 7) ZIP («13467») 8) Город («Берлин») и 9) Страна («DE») заполняется. После 9-го выполнения каждый параметр заполняется, но изображение карт google отсутствует: https://maps.googleapis.com/maps/api/staticmap?zoom=15&size=640x400&markers=Calvinstra%c3%9fe%2c%2013467%20Berlin % 2c% 20DE – Nighty

0

Пух ... это было очень странно, но я думаю, что понял: В моем случае изображения, представленные Карты Google не могут отображаться в Firefox или Opera. Он работал только с Google Chrome. Я создал некоторые приложения в SAPUI5 с данными в моделях, и там карты отображаются в каждом браузере, но в приложениях с макетами это кажется невозможным. Может быть, из-за привязки? Или связанные процессы? Я не знаю. Надеюсь, я смогу помочь кому-то в этом. Благодаря Qualiture за вашу помощь! :)

Редактировать (25.07.2016): Некоторые из изображений не отображаются в Chrome по некоторым причинам. Сначала я думал, что это будет из-за неправильных адресов, и я ввел реальные адреса, которые я знаю, в файл mockdata. Но ничего не изменилось. Может быть, это ограничение самого Google?

Редактировать (26.07.2016): Я снова отладил приложение. На этот раз с Google Chrome Developer Tools. И была некоторая интересная ошибка, показанная на консоли: staticmap: 1 GET https://maps.googleapis.com/maps/api/staticmap?zoom=15&size=640x400&markers=Morning%20Drive%2c%2091602%20Hollywood%2c%20California%2c%20US 403()

Действительно, существуют ограничения от Google - в зависимости от того, сколько «получает» пользователь отправляет на api. Вот ссылка на поток на SCN: http://scn.sap.com/thread/3936298

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