각 행의 변환을 위해 ng-repeat
안에 필터를 실행합니다. 필터 3 매개 변수를 보냅니다.각도 1 필터 번역
- 번역해야하는 문자열 (기본 반환 값).
- 이벤트 ID (문자열이이 이벤트에 속함).
- 언어 코드 (사용자가 선호).
필터는이 개 매개 변수를 사용하여 서비스에 데이터를 전송 :
- 언어 -code를.
- 이벤트 ID (문자열이이 이벤트에 속함). 서버 응답이
은 번역 된 문자열이 포함되어 있습니다.
문제는 내가 "기능을 다음"의 밖으로 반응을 얻을 수 있다는 것입니다. 나는 약속을 사용하고 $ q를 해결하려고 노력했지만 여전히 성공하지 못했습니다.
코드 :
//* Filter translate this *//
app.filter('translateThis', ['$q', 'translateEvents', function ($q, translateEvents) {
var pending = {};
// FILTER WRAPPER TO COPE WITH ASYNCHRONOUSLY
return function(item, eventId, lngCode) {
// check if eventId it exits and it must to be integer
var check = isInt(eventId);
if (check == false) {
return item;
}
if ($localStorage.doTranslateEvents == 2) {
if (!(item in pending)) {
pending[item] = null;
translateEvents.translate(lngCode, eventId).then(function (response) {
console.log(response.data);// i get the data here !
pending[item] = response.data;
});
}
console.log(pending[item]);// i do not get it here !
return pending[item] || item;
} else {
return item;
}
};
}
/* the following service is responsible to translate events
* finally this service returns promise.
*/
app.service('translateEvents',['$q', '$localStorage', '$http', 'rootUrl', '$rootScope', '$timeout', function ($q, $localStorage, $http, rootUrl, $rootScope, $timeout) {
return {
translate : function (toLanguageCode, eventId) {
/*
* Then we do lng from and lang to validation and set defaults.
*/
if (eventId != null || eventId != undefined) {
if (toLanguageCode != 'en' && toLanguageCode != 'he' && toLanguageCode != 'ru' && toLanguageCode != 'es' && toLanguageCode != 'tr' && toLanguageCode != 'de' && toLanguageCode != 'fr' && toLanguageCode != 'it' && toLanguageCode != 'nl' && toLanguageCode != 'gan' && toLanguageCode != 'zh' && toLanguageCode != 'ja' && toLanguageCode != 'no' && toLanguageCode != 'ko' && toLanguageCode != 'pt' && toLanguageCode != 'tlh' && toLanguageCode != 'ar') {
toLanguageCode = 'en';
}
return $http.get("https://xxx?id=" + eventId + "&lng=" + toLanguageCode);
} else {
return null;
}
}
}
}]);
나는 내가 뭘 잘못 이해하지 않습니다.
에 좋은 읽기입니다? –
무엇을 의미합니까? – avix
코드에 html이 필요합니다. –