Tôi đang sử dụng dịch góc cho i18n trong ứng dụng AngularJS.
Đối với mọi chế độ xem ứng dụng, có một bộ điều khiển chuyên dụng. Trong bộ điều khiển bên dưới, tôi đặt giá trị được hiển thị dưới dạng tiêu đề trang.
Mã
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';
}])
Tôi đang tải các tệp dịch bằng phần mở rộng góc-dịch-bộ tải-url .
Vấn đề
Khi tải trang đầu tiên, khóa dịch được hiển thị thay vì bản dịch cho khóa đó. Bản dịch là vậy Hello, World!
, nhưng tôi đang thấy HELLO_WORLD
.
Lần thứ hai tôi vào trang, tất cả đều tốt và bản dịch được hiển thị.
Tôi cho rằng vấn đề liên quan đến thực tế là có thể tệp dịch chưa được tải khi bộ điều khiển đang gán giá trị cho $scope.pageTitle
.
Nhận xét
Khi sử dụng <h1>{{ pageTitle | translate }}</h1>
và $scope.pageTitle = 'HELLO_WORLD';
, bản dịch hoạt động hoàn hảo ngay từ lần đầu tiên. Vấn đề với điều này là tôi không phải lúc nào cũng muốn sử dụng các bản dịch (ví dụ: đối với bộ điều khiển thứ hai, tôi chỉ muốn chuyển một chuỗi thô).
Câu hỏi
Đây có phải là một vấn đề / hạn chế đã biết không? Làm thế nào điều này có thể được giải quyết?