ฉันใช้angular-translateสำหรับ i18n ในแอปพลิเคชัน AngularJS
สำหรับทุกมุมมองแอปพลิเคชันมีตัวควบคุมเฉพาะ ในตัวควบคุมด้านล่างฉันตั้งค่าให้แสดงเป็นชื่อหน้า
รหัส
HTML
<h1>{{ pageTitle }}</h1>
JavaScript
.controller('FirstPageCtrl', ['$scope', '$filter', function ($scope, $filter) {
$scope.pageTitle = $filter('translate')('HELLO_WORLD');
}])
.controller('SecondPageCtrl', ['$scope', '$filter', function ($scope, $filter) {
$scope.pageTitle = 'Second page title';
}])
ฉันกำลังโหลดไฟล์แปลโดยใช้นามสกุลangular-translate-loader-url
ปัญหา
ในการโหลดหน้าเริ่มต้นคีย์การแปลจะแสดงแทนการแปลสำหรับคีย์นั้น แปลเป็นแต่ฉันเห็นHello, World!
HELLO_WORLD
ครั้งที่สองที่ฉันไปที่หน้านั้นทุกอย่างเรียบร้อยดีและมีการแสดงเวอร์ชันแปล
$scope.pageTitle
ผมถือว่าปัญหาได้จะทำอย่างไรกับความจริงที่ว่าอาจจะไฟล์แปลยังไม่ได้โหลดเมื่อควบคุมคือการกำหนดค่า
สังเกต
เมื่อใช้<h1>{{ pageTitle | translate }}</h1>
และ$scope.pageTitle = 'HELLO_WORLD';
การแปลจะทำงานได้อย่างสมบูรณ์แบบตั้งแต่ครั้งแรก ปัญหานี้คือฉันไม่ต้องการใช้คำแปลเสมอไป (เช่นสำหรับคอนโทรลเลอร์ตัวที่สองฉันแค่ต้องการส่งสตริงดิบ)
คำถาม
นี่เป็นปัญหา / ข้อ จำกัด ที่ทราบหรือไม่? จะแก้ไขได้อย่างไร?