我创建了一个填充数据的javascript对象,当我将此对象返回到另一个类并在该对象上运行isError函数时,我总是得到true,但我不明白为什么。
这是我创建的新对象:
function WSResponse()
{
this.error = new Object();
this.isError = function()
{
if (this.error.status === '0')
{
return false;
}
else
{
return true;
}
}
}
这是我的服务:
...Some code..
var wsresponse = new WSResponse();
wsresponse.data = responseFromServer.ws_result;
wsresponse.error.status='0';
wsresponse.error.msg = responseFromServer.msg;
return wsresponse;
这是我的 Controller :
if (response.isError)
{
$scope.isLoginError = true;
}
else
{
$scope.isLoginError = false;
}
出于某种原因,我总是得到 true,当我调试时,我可以看到该值为 0 或 -1(字符串)
问题是什么 ?
谢谢
最佳答案
isError是一个函数,所以你需要像函数一样调用它,即response.isError()
if(response.isError) 将始终返回 true,因为您正在有效地检查是否存在附加到响应对象的 isError 对象(在本例中为函数)。
if (response.isError())
{
$scope.isLoginError = true;
}
else
{
$scope.isLoginError = false;
}
关于创建对象和比较字段时出现 JavaScript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25789608/