2016-07-25 4 views
0

Eclipse에서 mockdata로 SAPUI5 애플리케이션을 작성했습니다. 내가 방법 "formatMapUrl는"실행하기되지 않은 이미지 소스 속성을 채우기 위해 formatter.js에서 특정 메서드를 호출 할 때 : 파일 formatter.js의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: 
    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); 
    } 

방법 :

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

이 관련 방법이다. 동적 경로를 잘해야한다 (예 : "ToSupplier/주소/거리") 나는 성공적으로 같은 응용 프로그램에서 그들을 사용하고 같은 파일 원인 :

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

나는 웹을 통해 브라우저에서 응용 프로그램을 디버깅하려고 파이어 폭스에서 콘솔을 실행하고 그 방법은 실행되지 않는 것으로 나타났습니다. 나는 모델 "Address.json"를 생성하고 성공적처럼 사용하는 다른 응용 프로그램에서

:

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

~ 부트 스트랩 스크립트에서'data-sap-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' 
}" /> 

합니다 (parts 배열의 각 path 속성을 참고해야한다)

+0

아니, 그럴 필요는 없습니다 - 이미 확인했습니다. – Nighty

+0

Strange .... 그리고 함수 호출을 단지 하나의 매개 변수, 즉'src = "{경로 : 'ToSupplier/Address/Street', 포매터 : '. formatter.formatMapUrl'}"로 좁히면 함수가된다. 부름 받았어? – Qualiture

+0

"return"이있는 모든 행이 모두 9 번 호출됩니다. 1-5) 매개 변수가 모두 채워지지 않습니다. 6) Street ("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 크롬에서만 작동했습니다. 모델 내 데이터가 포함 된 SAPUI5의 일부 애플리케이션을 만들었고 모든 브라우저에지도가 표시되었지만 mockdata가있는 앱에서는 가능하지 않은 것으로 보입니다. 어쩌면 바인딩 때문일 수도 있겠습니까? 또는 관련 프로세스? 나는 모른다. 내가 이것을 도와 줄 수 있기를 바란다. 도움을 주신 Qualiture에게 감사드립니다! :)

편집 (25.07.2016) : 일부 이유로 인해 일부 사진이 Chrome에 표시되지 않습니다. 처음에는 주소가 틀린 것 같아서 모크 데이터 파일에있는 실제 주소를 입력했습니다. 그러나 아무것도 바뀌지 않았습니다. 어쩌면 Google 자체의 한계 일 수 있습니까?

편집 (26.07.2016) : 응용 프로그램을 다시 디버깅했습니다. 이번에는 Google 크롬 개발자 도구를 사용합니다. 그리고 몇 가지 흥미로운 오류가 콘솔에 표시되었습니다. 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