2016-07-12 20 views
0

私はいくつかのテキストを翻訳するためにangularjs関数を持っています。私の全体のコントローラは、次のようになります。どのように角度でクッキーを設定しますか?

ntsvApp.controller('ntCtrl', function($translate){ 
    var ctrl = this; 

    ctrl.language = 'en'; 
    ctrl.languages = ['en', 'de']; 
    ctrl.updateLanguage = function(){ 
     $translate.use(ctrl.language); 

    }; 
}); 

私はクッキーを設定できるようにupdateLanguage関数に$cookiesを入れた場合、角度は$translate.use方法を認識しません。コントローラー機能内に$cookiesを配置すると、$cookies .putメソッドが認識されません。もし私が両方のクッキーを入れて、コントローラかupdatelanguageのいずれかで翻訳しても何も動作しません。私はどのようにして、クッキーを書くことはupdatelanguage関数だけで動作するのですか?

+0

https://docs.angularjs.org/api/ngCookies/service/$これを試してみてください別の話thatsの推測クッキー – user2584538

+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); 

    }; 
}]); 

あなたは今コントローラ機能の任意の場所でそれらを使用することができます。

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}); 
    }; 
}]); 

今私はウェブサイトをロードしようとしていますが、それはクッキーを覚えていないが、私は今

関連する問題