0

現在、Knockout を Angular に置き換えようとしています。ただし、これまでのところ簡単に回避できない癖がいくつかあるようです。

私のサイトのログイン機能では、ajax 呼び出しを実行してユーザー情報を取得します。この情報はコントローラーに設定されます。

このような:

    $scope.login = function () {

        var data = {
            userName: $('#txtLoginName').val(),
            password: $('#txtLoginPassword').val(),
        };

        console.info(data);

        postJSON("/StrengthTracker/User/Login", data, function (result) {

            if (result.result == "ok") {
                $('#loginDialog').modal('hide');

       //setting controller variables <------------
                $scope.isLoggedIn = true;
                $scope.userId = result.userId;
                $scope.userName = result.userName;
                $scope.publicId = result.publicId;
                $scope.gender = result.gender;
                $scope.unitName = result.unit;

                console.info(result);

                notify("Welcome " + $scope.userName);
            }
            if (result.result == "fail") {
                notifyFail("Login failed");
            }
        });
    }

正しいデータが返されていることがわかります。たとえば、notify(..) 呼び出しで「Welcome Roger」と表示されます。ここまでは順調ですね。しかし、Angular は変数が変更されたことを認識していないようです。

ログイン機能をもう一度押すと、角度が変更に気づき、ユーザーがログインしていることを認識します。

アイデア?

4

1 に答える 1