Angularjs处理后端空数据

2014年11月15日 · 57 字 · 1 分钟

Yii1.x DAO中的queryAll方法查询,如果有结果,会返回一个数组,如果没有结果,会返回null。现在分两种情况:

返回空数组

$array = array(
);
echo json_encode($array);

输出为

[]

返回null

$array = null;
echo json_encode($array);

输出为

null

那么问题来了,JS接收这两个的结果是不同的。
如果使用以下代码判断数据:

if(data.length == 0){
    //当前评论为空
}else{
    //当前评论不为空
}

如果返回 [] ,这段代码是生效的。但是如果返回 null ,这个就有问题了。

后来,使用

if(data == null){
    //评论为空
}else{
    //评论不为空
}

这个判断老是出问题,后端明明返回null了,判断还是错误的,这时候想到JS也是若类型语言,会不会是类型的问题。

console.log(typeof data)

返回的是**“string”**
那么问题就解决了,用以下代码就可以了

if(data.length == 0 || data == "null"){
    //评论为空
}else{
    //评论不为空
}