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的搜索表单页面内点击按钮,然后在该页面内我想跳转到搜索页面以显示结果。