JS:

  $scope.addPano = function () {
      var Pano = AV.Object.extend("Panorama"),
      pano = new Pano()

      var json = {
        'name': 'test3',
        'index': 0,
        'Type': 'real',
        'version': 0,
        'buildingCode': $scope.buildingId
      }

      pano.save(json, {
    success: function(object) {
      console.log('PANO: ', object)
      $scope.building.pano.push(json)
      $scope.$digest()
    },
    error: function(object, error) {
      console.log('Failed to create new object, with error message: ' + error.message);
    }
      })
    }


HTML:

<div ng-repeat="pano in building.pano">
  <p><strong>{{pano.name}}</strong></p>
  <div ng-repeat="panodata in pano.panoData">
    <p>{{panodata.name}}</p>
  </div> <a class="btn btn-default" href="javascript:;" ng-click="addPanodata(pano.objectId)">Add panodata</a> </div> <a class="btn btn-default btn-lg" href="javascript:;" ng-click="addPano()">Add pano</a>
</div>


现在,使它出现的唯一方法是:

      $scope.building.pano.push(json)
      $scope.$digest()


我以为Angular会自动执行此操作?

最佳答案

我认为您可以尝试这种类型,但是在代码中,您可以在成功调用save方法后重新加载数据,然后轻松地出现。



function myctrl($scope){
  $scope.data =[{name:'abc'}];

  $scope.pushdata = function(name){
    $scope.data.push({name});
    $scope.name ='';

  }
}

<html ng-app=''>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
    </head>
  <body ng-controller='myctrl'>
      <input type='text' name='name' ng-model='name'/>
    <button name='clickme' type=submit ng-click='pushdata(name)'>save</button>
    <div ng-repeat='obj in data'>
      {{obj.name}}
    </div>
  </body>
  </html>

10-04 16:11
查看更多