Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度问题更新视图/检索承诺值后的值';完成_Javascript_Angularjs_Promise - Fatal编程技术网

Javascript 角度问题更新视图/检索承诺值后的值';完成

Javascript 角度问题更新视图/检索承诺值后的值';完成,javascript,angularjs,promise,Javascript,Angularjs,Promise,我的视图上有以下标签: <label id="error" class="error">{{ login.error }}</label> 以下是一些控制器代码: function LoginController(user, auth, $location) { var self = this; self.error = 'blah'; // works function handleRequest(res) { if

我的视图上有以下标签:

<label id="error" class="error">{{ login.error }}</label>
以下是一些控制器代码:

function LoginController(user, auth, $location)
{
    var self = this;

    self.error = 'blah'; // works

    function handleRequest(res)
    {
        if (typeof res != 'undefined')
        {
            var token = res.data ? res.data.token : null;

            if (token && auth.isAuthed())
                $location.path('/layout');

            if (res.status == 401)
            {
                return { status:res.status, statusText:res.statusText, error:res.data.error }
            }
        }
    }

    self.login = function(form)
    {
        self.error = 'blah'; // doesn't work

        if(form.validate())
        {
            user.login(self.username, self.password)
                .then(handleRequest, handleRequest)
        }
    }
我无法在方法中获取要更新的login.error值。 我还尝试了$scope和$apply,但没有成功

下一期是

user.login(self.username、self.password) .然后(HandlerRequest,HandlerRequest)

promise,在HandlerRequest方法中,我返回以下内容:

返回{status:res.status,statusText:res.statusText,error:res.data.error}

我究竟如何从实现的承诺中获得价值

如果我将结果输出到控制台,我会得到以下结果:

我试着和另一个鬼混。然后等等,都没用

编辑:

这似乎可以用于检索承诺值:

self.login = function(form)
    {
        self.error = 'blah'; // doesn't work

        if(form.validate())
        {
            var login = user.login(self.username, self.password)
                            .then(handleRequest, handleRequest)

            login.then(function(response)
            {
                console.log(response);
            });
        }
    }

我现在只需要弄清楚如何从该方法在视图中显示。

我最终发现,如果标签上有一个名为error的class属性,我正在使用的验证包添加了display:none样式


因此,该值始终在更新,但从未显示://

您是否尝试使用
$scope.error
而不是
self.error
。注入$scope和设置$scope.error似乎根本不起作用
self.login = function(form)
    {
        self.error = 'blah'; // doesn't work

        if(form.validate())
        {
            var login = user.login(self.username, self.password)
                            .then(handleRequest, handleRequest)

            login.then(function(response)
            {
                console.log(response);
            });
        }
    }