我有一个安装了Angular Translate
的Angular App。
这是我的app.js文件(只有感兴趣的部分):
.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider, $ionicFilterBarConfigProvider, $httpProvider, $translateProvider) {
$translateProvider.translations('it', {
SEARCH: 'Cerca',
})
$translateProvider.translations('en', {
SEARCH: 'Search',
})
//... Various .state(...
});
//Translate config
$translateProvider.preferredLanguage('en');
$ionicFilterBarConfigProvider.placeholder("Search");
我需要做的是根据所选的翻译更改最后一行,"Search"
必须从翻译中获取。
我试过这个:
var SRC_WORD = $filter('translate')('SEARCH');
$ionicFilterBarConfigProvider.placeholder(SRC_WORD)
不工作。
我也试过这个,但当然不在HTML中,所以它不会工作:
$ionicFilterBarConfigProvider.placeholder("{{'SEARCH' | translate }}")
没有运气,我在哪里做错了?
答案 0 :(得分:0)
服务提供商($ionicFilterBarConfigProvider
)仅在配置阶段可用,服务实例($ionicFilterBarConfig
)仅在运行阶段可用。
这种分离的含义是配置阶段(config
块)用于在实例化之前配置服务实例。
在某些情况下,可以将服务提供者公开为实例,以便在运行阶段动态配置它:
app.config(function ($provide, $ionicFilterBarConfigProvider) {
$provide.value('$ionicFilterBarConfigProvider', $ionicFilterBarConfigProvider);
});
app.controller(..., function ($filter, $ionicFilterBarConfigProvider) {
var SRC_WORD = $filter('translate')('SEARCH');
$ionicFilterBarConfigProvider.placeholder(SRC_WORD)
});
此方法没有保修,完全取决于特定服务中发生的情况。