Angularjs 新添加的元素未在html中更新
我有以下控制器代码:Angularjs 新添加的元素未在html中更新,angularjs,Angularjs,我有以下控制器代码: $scope.searchResult = [{title:"this is 1"},{title:"this is 2"}]; $scope.searchByTag = function() { $location.path("search"); var req = { method: 'POST', url: 'url', headers: { 'Con
$scope.searchResult = [{title:"this is 1"},{title:"this is 2"}];
$scope.searchByTag = function()
{
$location.path("search");
var req = {
method: 'POST',
url: 'url',
headers: {
'Content-Type': "application/json"
},
data: searchFormService.getTagSearhReqData()
};
$http(req).then(function(d){
for(var i=0;i<d.data.length;i++)
{
$scope.searchResult.push(d.data[i]);
}
alert($scope.searchResult.length);
}, function(e){
});
}
以下是html代码:
<div ng-repeat="data in searchResult">
{{data.title}}
</div>
最初,当searchByTag被称为警报$scope.searchResult.length时,它显示标题1和标题2;显示searchResult的新长度,这意味着已将新元素添加到searchResult中,但它未在html中更新。您的JSON结构如下所示
$scope.searchResult.push({'title':d.data[i]});
您的代码应该可以工作,但可能会一直挂起警报,直到您按OK?尝试注释掉警报或将其转换为console.log,然后查看发生了什么。或者d.data[i]不包含title属性?您可以通过console.logd.data[i]进行检查。内部循环console.logd.data[i].title;效果很好&我试着在没有任何警告的情况下告诉你是否可以共享jsfiddle?那么唯一的另一个嫌疑犯就是$location.pathsearch;。那是干什么用的?若你们把它注释掉怎么办?在我称之为searchResult的搜索表单页面内点击按钮,然后在该页面内我想跳转到搜索页面以显示结果。