提问人:code_dev 提问时间:2/21/2023 最后编辑:code_dev 更新时间:2/21/2023 访问量:42
Ajax 返回数据 ng-click 函数不起作用
Ajax return data ng-click function not working
问:
我尝试在 ajax 返回中传递数据,并且在该数据中有一个函数可以写入 angular 1 ng-click like
$.ajax({
'method': 'GET',
'url': base_url +'party/selectCities?id='+state,
success: function(data) {
var newData = data.replace(/\"/g, "")
if(newData == ""){
}else{
var jsdata = JSON.parse(data);
var html = ``;
$.each(jsdata, function (index, item) {
console.log(item);
html += '<li onclick="selectcityclubs(\'' + item.city + '\');">' + item.city + '</li>';
});
$("#home-city-listing").html(html);
}
}
});
它正常显示在页面中,我检查它是否正确显示。
<ul class="partylist ng-scope" id="home-city-listing" ng-controller="clubController">
<li ng-click="selectcityclubs('Chittoor');">Chittoor</li>
<li ng-click="selectcityclubs('Cuddapah');">Cuddapah</li>
<li ng-click="selectcityclubs('East Godavari');">East Godavari</li>
</ul>
为什么该功能不起作用,页面和控制台中没有任何响应,没有显示任何错误,如何解决此问题请帮助我
答:
1赞
treckstar
2/21/2023
#1
编辑:请参阅新的 JsFiddle 以查看没有 jQuery 的更新答案,仅使用 angular
Stack Overflow 代码现在也应该可以工作了
看看 Jsfiddle,因为 StackOverflow 代码不会运行。
与其用于输出元素,不如在 .jQuery
<li>
ng-repeat
HTML
下面的代码用于使 HTML 加载 2 个城市,因为它不适用于 JsFiddle/StackOverflow with .try/catch
ajax
如果这不起作用,那么我不确定您的函数在做什么,并且可能存在错误。selectcityclubs
// setup variables to make code look as close to original
let base_url = '';
let state = 'NorthBoa';
angular.module('app', [])
.controller('clubController', function($scope, $http) {
// handles the button click
$scope.selectcityclubs = function(c) {
console.log('Button clicked: ' + c);
alert(c);
}
$scope.jsdata = [];
$http.get(base_url + 'party/selectCities?id=' + state)
.then(function onSuccess(response) {
console.log('Success!');
console.log(response);
// make sure you check response.data
$scope.jsdata = response.data.replace(/\"/g, "");
})
.catch(function onError(response) {
console.log('Error, couldnt access ajax.');
console.log(response);
// adding here because we can't get to the AJAX URL
$scope.jsdata = [{
city: 'North Goa'
}, {
city: 'South Goa'
}];
})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<body ng-app="app">
<a href="https://jsfiddle.net/dweuc6kL/1/">Take a look at JsFiddle with updated answer for 1.4.8</a>
<h2>Using angular 1.7.5</h2>
<ul class="partylist" id="home-city-listing" ng-controller="clubController">
<li ng-repeat="city in jsdata" ng-click="selectcityclubs(city.city);">{{city.city}}</li>
</ul>
</body>
评论
0赞
code_dev
2/21/2023
城市 li show empty console data show right
0赞
treckstar
2/21/2023
我刚刚进行了更新,检查了新的 JsFiddle。
0赞
code_dev
2/21/2023
我将更新与非数据列表相同的 li 标记其显示空白但数据返回显示在网络选项卡中
0赞
treckstar
2/21/2023
您是使用 还是 ?用途,我再次更新了这个答案以显示它适用于 .几乎你拿出来,为了和.立即尝试运行上面的答案angular 1.7.5
1.4.8
JsFiddle
1.4.8
1.7.5
.success
.fail
.then()
.catch
评论