Ajax 成功数据显示 undefind

Ajax success data show undefind

提问人:code_dev 提问时间:2/21/2023 最后编辑:Philcode_dev 更新时间:2/21/2023 访问量:73

问:

我返回一个数组对象数据 Ajax 成功结果,然后我打印 li 标签,但它显示 undefind

我的 Ajax 代码是

$.ajax({
        'method': 'GET',
        'url': base_url +'party/selectCities?id='+state, 
        success: function(data) {
            var newData = data.replace(/\"/g, "")
            if(newData == ""){
            }else{
                var datas = JSON.stringify(newData);
                var jsdata = JSON.parse(datas);
                alert(jsdata);
                var html = ``;
                for(var i = 0; i<jsdata.length; i++){    
                    html += '<li ng-click="selectcityclubs(' + jsdata[i].city+ ');>' + jsdata[i].city+ '</li>';
                    }

                    $("#ClubCity").html(html);
            }
        }
});

在这里,我提醒jsdata,我得到的结果是这样的

 [{city:North Goa},{city:South Goa}]

但是李列表显示undefind,如何解决这个问题..

请帮我解决这个问题

javascript jquery angularjs ajax

评论

0赞 Phil 2/21/2023
您的 API 是否使用 JSON 进行响应?如果不是,为什么不呢?不需要手动操作响应数据字符串或任何额外的字符串化/解析
0赞 code_dev 2/21/2023
@phil其角度 1

答:

0赞 Rory 2/21/2023 #1

对 ng-click 属性使用双引号 (“),并使用反斜杠 () 转义其中的双引号 ()

var html = '';
for (var i = 0; i < jsdata.length; i++) {
  html += '<li ng-click="selectcityclubs(\'' + jsdata[i].city + '\')">' + jsdata[i].city + '</li>';
}
$("#ClubCity").html(html);

评论

0赞 code_dev 2/21/2023
这里的ng-click功能不起作用,为什么?
0赞 treckstar 2/21/2023
在这里猜一猜,你有没有尝试过骆驼案例selectCityClubs()
0赞 code_dev 2/21/2023
@treckstar没有函数正确写入但没有响应
2赞 treckstar 2/21/2023 #2

看起来您在 .看看下面的这个片段。ng-click

此外,使用模板文字(反引号)而不是用于连接字符串有助于使内容更具可读性。+

编辑:用 Angular 更新并展示了如何使用 versus 和ng-repeatplain HTMLjQuery

// angular code
angular.module('app', [])
  .controller('TestController', function($scope) {
    $scope.selectcityclubs = function(c) {
      alert(c);
    }

    $scope.jsdata = [{
      city: 'North Goa'
    }, {
      city: 'South Goa'
    }];
  });



// jQuery code 
let jsdata = [{
  city: 'North Goa'
}, {
  city: 'South Goa'
}];

let html = '';
for (var i = 0; i < jsdata.length; i++) {
  html += `<li ng-click="selectcityclubs('${jsdata[i].city}');">${jsdata[i].city}</li>`;
}

$("#ClubCity").html(html);
li,
button {
  cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<body ng-app="app" ng-controller="TestController">
  <h2>Uses jQuery (working)</h2>
  <ul id="ClubCity"></ul>
  <h2>Click Works</h2>
  <ul id="ClubCity1">
    <li><button ng-click="selectcityclubs('North Goa')">North Goa</button></li>
    <li><button ng-click="selectcityclubs('South Goa')">South Goa</button></li>
  </ul>
  <h2>Uses ng-repeat (working)</h2>
  <ul id="ClubCity2">
    <li ng-repeat="city in jsdata" ng-click="selectcityclubs(city.city);">{{city.city}}</li>
  </ul>
</body>

评论

0赞 code_dev 2/21/2023
ng-click 不起作用,我为此所做的
0赞 treckstar 2/21/2023
@code_dev查看我编辑的答案时,我将其更新为包含 angular,如果您单击该按钮,您将看到它有效。Run code snippet
0赞 code_dev 2/21/2023
是的,我会更新它,但我的功能不起作用,这真是太棒了
0赞 treckstar 2/21/2023
也许提出一个新问题,包括更多的代码和函数,这可以帮助你获得该部分的答案
0赞 code_dev 2/21/2023
stackoverflow.com/questions/75518058/......已经打开了