首页  >  问答  >  正文

angular.js - $http中的 for循环 Cannot read property 'menuName' of undefined

$http.post('sysIndex/getSysIndexNameAndScoreByCid',{cid:id})
            .success(function(resp, status, headers, config){
                var index=resp.data                    
                for(var i=0;i<=index.length;i++){
                    var name=index[i].menuName;                                        
                }                  
            })


初学angular 为什么会报这个错


index的值是这样的。。

滿天的星座滿天的星座2713 天前605

全部回复(3)我来回复

  • 给我你的怀抱

    给我你的怀抱2017-05-15 16:59:32

    你需要设个断点,看看取到的index到底是什么


    我知道了,你循环的时候写了

    for(var i=0;i<=index.length;i++)

    应该为

    for(var i=0;i<index.length;i++){

    多了一个等号。所以最后一项为undefined,所以就没有menuName属性了。。。

    回复
    0
  • PHP中文网

    PHP中文网2017-05-15 16:59:32

    这是你后台的数据的问题。

    回复
    0
  • 巴扎黑

    巴扎黑2017-05-15 16:59:32

    这里的问题应该不是index下的每一个元素都是undefined,题主的截图只是第一个元素正常,改成如下试试:

    var name = !!index[i]?index[i].menuName:'';

    回复
    0
  • 取消回复