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