2017-05-18 5 views
0

번역을 위해 다른 키로 매핑하려는 데이터 모델에 여러 상태 이름이 있습니다.번역을위한 콤보 박스 옵션 매핑

  • 열기 -> state_open
  • 뉴 - 승인> state_new
  • 기다립니다 - 현재 내 콤보 상자가 이런 식으로 채워집니다

> state_wait_for_approval :

<select class="form-control select" id="client" 
    ng-model="statusType" 
    ng-change="setStatusType(statusType)" 
    ng-options="statusType.name for statusType in statusTypes track by statusType.id"> 
    <option value="">-</option> 
</select> 

내가 가진를 다음을 수행하여 번역을 구현할 수 있음을 읽어보십시오.

ng-options="statusType.name | translate for statusType in statusTypes track by statusType.id"> 

그러나 번역 키가 상태 이름과 같다고 가정합니다. 오히려 위에서 언급 한 번역 키에 내 주 이름을 매핑하고 싶습니다.

이 메커니즘을 어떻게 각도로 구현할 수 있습니까? 필자는 일종의 사용자 지정 지시문 (?)이 필요할 것입니다. Angular를 처음 접했으므로 모든 힌트를 환영합니다. 내가 좋아하는 뭔가 생각하고

: 링크, https://angular-translate.github.io/docs/#/guide에서

mapStateToTranslationKey(statusType.name) -> return "status_" + toLowerCase(replaceSpacesWithUnderscores(statusType.name)) 

답변

0

직접 문제를 해결할 수있었습니다. 기본적으로, 나는 내 컨트롤러에이 기능을 추가했다 : 밑줄 모든 공백을 대체하고 마지막으로 문자열 state_ 앞에 추가, 소문자 상태 이름을 변환합니다

$scope.mapStateToTranslationKey = function(stateName) { 
    return "state_" + stateName.toLowerCase().split(' ').join('_'); 
}; 

이 기능. 궁극적으로, 키를 반환합니다. 번역을 위해 angular-translate을 사용할 수 있습니다.

보기에서 이제는 함수를 먼저 호출 한 다음 파이프 기호 다음에 translate 키워드를 사용해야합니다. 이렇게하면 실제 주 이름 대신 변환 키가 사용됩니다.

<select class="form-control select" id="client" 
    ng-model="statusType" 
    ng-change="setStatusType(statusType)" 
    ng-options="mapStateToTranslationKey(statusType.name) | translate for statusType in statusTypes track by statusType.id"> 
    <option value="">-</option> 
</select> 
0

, 내 가정은 각도가 아무 것도 번역하지 않습니다, 당신은 각도 알려주는 코드를 작성해야합니다 헤이 때 "그 이 단어를보고이 단어로 번역하십시오. "

존재하지 않는 기능이 필요할 수 있습니다. 번역 함수에서 자바 스크립트로 작성해야한다고 생각합니다. 각도 함수 ".translations()"를 사용하면 명시 적으로 이름과 키를 모두 변환해야합니다. 그리고 기대하고있는 단일 가치를 돌려 보내십시오.

+0

** angular-translate **라고하는 각도 확장이 있습니다. 사용하는 언어는 다음과 같습니다. https://angular-translate.github.io – user1438038