这是我的jquery ajax调用
jQuery.ajax({
url: view_url+"get_messagekinds",
success: function (result) {
$scope.response = result;
},
async: false
});
这里是html代码:
<select id="select_msg_kind"
name="select_msg_kind"
class="form-control"
ng-model="message_kind_selected" style="height:30px;width:220px">
<option value="0">--Select Message Kind--</option>
<option ng-repeat="res in response track by $index" value="{{ res.id }}">
{{ res.name }}
</option>
</select>
但是选择列表为空。这是截图
如何使用ng-repeat?
填充ajax调用返回的数据的选择列表以下是ajax调用返回的数据:
[{"id": 1, "name": "Test1"}, {"id": 2, "name": "test2"}, {"id": 3, "name": "Test3"}]
答案 0 :(得分:0)
提示:请勿使用jQuery.ajax
,而应使用有角度的$http
服务。后者会注意到所谓的“消化周期”的角度。应该运行:
$http.get(url).then(function(result) {
// success
$scope.response = result;
}, function() {
// error
});
如果你真的想使用jquery的ajax(我认为你的理由是因为你使用async: false
),你应该自己触发摘要周期:
jQuery.ajax({
url: view_url+"get_messagekinds",
success: function (result) {
// trigger digest cycle with '$apply'
$scope.$apply(function() {
$scope.response = result;
});
},
async: false
});
但是你不应该使用async,你可以使用$http
服务的promises和回调函数。