2

以下に示すように、カスタム API 認証方法を実装しようとしています。

REST サービスをパスワードで保護していますか?

ただし、認証キーに問題があります。受け取った authkey をグローバル変数として保存したいのですが、変更できないようです。最初に定義された値と常に同じ値になります。

angular (v0.9) サービスを使用してグローバル変数を実装しています。

私のコードのスニペット

angular.service('Authkey', function(){
  return {
"authkey": "0000"
 };
});

コントローラ

function LoginCtrl(Login_, Authkey_){
this.login = function(){
Login_.query({"Username": this.email,"Password": this.password}, function(response){
        if (response.success === "true") {
            Authkey_.authkey = response.AuthKey;
            console.log(Authkey_.authkey);
            window.location="/main.html";

        } 
    }); 
}
}

うん。ページが変わった後は常に 0000 になります。

私が得ることができるすべての助けに感謝します。ありがとうございました..

4

2 に答える 2

0

これがAngular0.9で利用可能かどうかはわかりませんが、Module.value(key、value)を使用してみてください。グローバルに注入可能な値を設定できます。

var app = angular.module('myApp', []);

app.value('token', '12345');

app.controller('MyCtrl', function($scope, token) {
     $scope.tokenOut = token; //still 12345.
});
于 2012-10-22T21:33:26.810 に答える
0

これを試して:

angular.service('Authkey', function(){
  var authkey = "000";
  return {
     getAuthKey: function(){
        return authkey;
     }, 
     setAuthKey: function(key){
        authkey = key;
     }
 };
});

//in controller:

Authkey_.setAuthKey(response.AuthKey);
consol.log(Authkey_.getAuthKey());

ここでの違いは、AuthKey サービスにはキーのクロージャがあり、その値を取得/設定することです。

コードでは、常に同じものを返します。サービスのキーの設定は、戻り値には影響しません

于 2012-10-22T18:50:51.160 に答える