AngularJS ng在插入数据库后重复不更新

AngularJS ng在插入数据库后重复不更新,angularjs,angularjs-scope,angularjs-ng-repeat,Angularjs,Angularjs Scope,Angularjs Ng Repeat,我是安格拉斯的新手。我整晚都在忙这个。我有一个表单,我希望表在单击SUBMIT后添加新行。表单工作正常,并将文档添加到mongodb中,但在刷新页面之前,我无法看到带有绑定的表上的更新 我错过了什么?我看到了使用PUSH的例子,但这似乎只适用于一维数组 ANGULARJS app.factory('SiteFactory', function($resource) { return $resource('/api/sites/:id',{ id:'@_id' }); }); app.con

我是安格拉斯的新手。我整晚都在忙这个。我有一个表单,我希望表在单击SUBMIT后添加新行。表单工作正常,并将文档添加到mongodb中,但在刷新页面之前,我无法看到带有绑定的表上的更新

我错过了什么?我看到了使用PUSH的例子,但这似乎只适用于一维数组

ANGULARJS

app.factory('SiteFactory', function($resource) {
  return $resource('/api/sites/:id',{ id:'@_id' });
});

app.controller('SiteListController', function($scope, $location, SiteFactory) {

  // GET LIST OF SITES
  var sites = SiteFactory.query();
  $scope.sites = sites;

  $scope.createSite = function () {

    // validate data passed
    var domain = $scope.domain.trim();
    if (!domain.length) {
        return;
    }
    // POST to API
    var newSite = new SiteFactory();
    newSite.domain         = domain;
    newSite.created        = new Date();
    newSite.$save();

    console.log($scope.sites);
    $scope.sites = SiteFactory.query();
    console.log($scope.sites);
  };
HTML

<form ng-controller="SiteListController">
<input type="text" ng-model="domain">
<button type="button" ng-click="createSite()">SUBMIT</button>
</form>
...
<tbody>
<tr ng-repeat="site in sites | orderBy:'domain'">
<td>{{site.domain}}</td>
<td>{{site.created}}</td>
</tr>
</tbody>
...
之后:

[$promise: Object, $resolved: false]
0: f
1: f
2: f
$promise: Object
$resolved: true
length: 3
__proto__: Array[0]

EXAMPLE:
    0: f 
    _id: "53d21d42f9406200001eddc6" 
    created: "2014-07-25T09:02:58.215Z" 
    domain: "originaldata1"
    1: f 
    _id: "53d21d42f9406200001eddc7" 
    created: "2014-07-25T09:02:58.215Z" 
    domain: "originaldata2"
    2: f 
    _id: "53d21d42f9406200001eddc8" 
    created: "2014-07-25T09:12:58.215Z" 
    domain: "newdata2"

我试过了。它不起作用。刷新页面后,我可以在表中看到新项。DOM没有更新。请将这一行添加到$scope.createSite console.log($scope.sites)中,并告诉我您得到了什么。我将console.log($scope.sites)输出添加到上面的原始问题中。@KyleAnderson您的mongodb返回对象而不是数组,这样您就可以用$scope.sites=SiteFactory.query()替换“push”行;或者将mongodb配置为返回数组,而不是对象$scope.sites=SiteFactory.query();不起作用。我认为角度资源是使它成为物体的原因。API正在返回一个JSON数组。
[$promise: Object, $resolved: false]
0: f
1: f
2: f
$promise: Object
$resolved: true
length: 3
__proto__: Array[0]

EXAMPLE:
    0: f 
    _id: "53d21d42f9406200001eddc6" 
    created: "2014-07-25T09:02:58.215Z" 
    domain: "originaldata1"
    1: f 
    _id: "53d21d42f9406200001eddc7" 
    created: "2014-07-25T09:02:58.215Z" 
    domain: "originaldata2"
    2: f 
    _id: "53d21d42f9406200001eddc8" 
    created: "2014-07-25T09:12:58.215Z" 
    domain: "newdata2"
     $scope.createSite = function () {

        // validate data passed
        var domain = $scope.domain.trim();
        if (!domain.length) {
            return;
        }
        // POST to API
        var newSite = new SiteFactory();
        newSite.domain         = domain;
        newSite.created        = new Date();
        newSite.$save();
//please add new site to arrays of sites
        $scope.sites.push(newSite);

      };