2016-07-25 7 views
0

Ich schrieb eine SAPUI5-Anwendung in Eclipse mit Mockdata. Wenn ich eine bestimmte Methode in formatter.js telefonischen Bildern source-Eigenschaft die Methode „formatMapUrl“ zu füllen, wird nicht ausgeführt zu werden:Methode in formatter.js heißt nicht

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

Andere Methoden der Datei formatter.js werden innerhalb der gleichen Datei mit dem Namen :

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

Dies ist ein verwandtes Verfahren:

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); 
    } 

das Verfahren selbst auch richtig sein soll, weil ich es in anderen Anwendungen verwendet. Die dynamischen Pfade sollten richtig sein (zB „ToSupplier/Adresse/Straße“), weil ich sie erfolgreich in der gleichen App verwendet und wie diese Datei:

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

Ich habe versucht, die App im Browser über das Web zu debuggen Konsole in Firefox und fand heraus, dass die Methode nicht ausgeführt wird.

In einer anderen Anwendung ich ein Modell erstellt "Address.json" und erfolgreich verwendet es diese wie:

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

~ Haben Sie 'data-sap-ui-xx-bindingSyntax =" complex "' in Ihrem Bootstrap-Skript? Diese Anforderung wird bei der Verwendung von Fomattern oft übersehen ~ ich sehe jetzt, dass andere Funktionen aufgerufen werden, also ist das scheinbar nicht das Problem – Qualiture

+0

habe ich versucht - nichts geändert. – Nighty

Antwort

1

Die Schreibweise sollte für die parts Array

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

(Anmerkung jede path Eigenschaft sein)

+0

Nein, das scheint nicht nötig zu sein - habe es schon überprüft. – Nighty

+0

Seltsam .... und wenn Sie den Funktionsaufruf auf nur einen Parameter einschränken, zB 'src =" {Pfad: 'ToSupplier/Address/Street', Formatierer: '. Formatter.formatMapUrl'} "' ist die Funktion dann gerufen werden? – Qualiture

+0

Ok alles in allem wird die Zeile mit "return" 9 mal aufgerufen. 1-5) Keiner der Parameter wird gefüllt. 6) Straße ("Calvinstraße") 7) PLZ ("13467") 8) Stadt ("Berlin") und 9) Land ("DE") wird gerade besetzt. Nach der 9. Ausführung ist jeder Parameter gefüllt, aber es gibt kein Bild von Google Maps: https://maps.googleapis.com/maps/api/staticmap?zoom=15&size=640x400&markers=Calvinstra%c3%9fe%2c%2013467%20Berlin % 2c% 20DE – Nighty

0

Puh ... das war sehr seltsam, aber ich denke, ich habe es herausgefunden: In meinem Fall Bilder, präsentiert von Google Maps kann in Firefox oder Opera nicht angezeigt werden. Es funktionierte nur mit Google Chrome. Ich habe einige Anwendungen in SAPUI5 mit Daten in Modellen erstellt und dort werden die Karten in jedem Browser angezeigt, aber in Apps mit Mockdata scheint es nicht möglich zu sein. Vielleicht wegen der Bindung? Oder verwandte Prozesse? Ich weiß es nicht. Ich hoffe, ich könnte jemandem damit helfen. Danke an Qualiture für Ihre Hilfe! :)

Bearbeiten (25.07.2016): Einige der Bilder werden aus irgendwelchen Gründen auch nicht in Chrome angezeigt. Zuerst dachte ich, das wäre wegen falscher Adressen und ich habe echte Adressen in die mockdata-Datei eingetragen. Aber nichts hat sich geändert. Vielleicht ist es eine Einschränkung von Google selbst?

Bearbeiten (26.07.2016): Ich debuggte die Anwendung erneut. Diesmal mit den Google Chrome-Entwicklertools. Und es gab einige interessante Fehler in der Konsole angezeigt: 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()

In der Tat gibt es Einschränkungen von Google - je nachdem, wie viele "bekommt" der Benutzer an die API senden. Hier ist der Link zum Thread auf SCN: http://scn.sap.com/thread/3936298

Verwandte Themen