我有angularjs函数来翻译一些文字。我的整个控制器看起来像这样:
ntsvApp.controller('ntCtrl', function($translate){
var ctrl = this;
ctrl.language = 'en';
ctrl.languages = ['en', 'de'];
ctrl.updateLanguage = function(){
$translate.use(ctrl.language);
};
});
如果我将$cookies
放入updateLanguage函数以便能够设置cookie,则angular不会识别$translate.use
方法。如果我将$cookies
放在控制器函数中,则它无法识别$cookies
。put方法。如果我把两个cookie和翻译在控制器或更新语言中没有任何作用。我如何编写这样的cookie只能使用updatelanguage函数?
答案 0 :(得分:1)
这应该适用于依赖注入,
ntsvApp.controller('ntCtrl', ['$translate', '$cookies', function($translate, $cookies){
var ctrl = this;
ctrl.language = 'en';
ctrl.languages = ['en', 'de'];
ctrl.updateLanguage = function(){
$translate.use(ctrl.language);
};
}]);
你现在可以在控制器功能的任何地方使用它们。
答案 1 :(得分:0)
好的,所以我让它与z.a一起工作。答案。
ntsvApp.controller('ntCtrl', ['$translate', '$cookies', function($translate, $cookies){
var ctrl = this;
var islang = $cookies.get('language');
if(typeof islang != 'undefined'){
ctrl.language = 'pl';
}else{
ctrl.language = $cookies.get('language');
}
ctrl.languages = ['pl', 'en'];
ctrl.updateLanguage = function(){
var expireDate = new Date();
expireDate.setDate(expireDate.getDate()+1);
$translate.use(ctrl.language);
$cookies.put('language', ctrl.language, {'expires':expireDate});
};
}]);
现在我正在尝试加载网站,但它不记得cookie但我想那是另一个故事