你如何设置角度的饼干?

时间:2016-07-12 11:17:43

标签: javascript angularjs cookies

我有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函数?

2 个答案:

答案 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但我想那是另一个故事