2013-10-17 53 views
0

我與angularjs和mongolab初學者..NG重複顯示功能名稱和數據

我有這樣的代碼,在mongolab編輯記錄:

function EditCtrl($scope, $location, $routeParams, Project) { 
    var self = this; 
    Project.get({id: $routeParams.projetId}, function(projet) { 
     self.original = projet; 
     $scope.projet = new Project(self.original); 
    }); 

    $scope.save = function() { 
     $scope.projet.update(function() { 
      $location.path('/list'); 
     }); 
    }; 
} 

它完美。 我想顯示所有記錄中的鍵和值,這是代碼:

<div ng-repeat="(key, val) in projet"> 
    <div>{{key}}:{{val}}</div> 
</div> 

這是結果:

_id:{} 破壞: 名稱:測試測試 響:4 更新:

在我的紀錄,我只有_id,名聲響起。我不知道爲什麼「摧毀:」丹斯「更新:」顯示!可能是因爲我使用此代碼連接到mongolab:

angular.module('mongolab', ['ngResource']). 
     factory('Project', function($resource) { 
    var Project = $resource('https://api.mongolab.com/api/1/databases' + 
      '/_____/collections/_________/:id', 
      {apiKey: '___________________'}, { 
     update: {method: 'PUT'} 
    } 
    ); 

    Project.prototype.update = function(cb) { 
     return Project.update({id: this._id.$oid}, 
     angular.extend({}, this, {_id: undefined}), cb); 
    }; 

    Project.prototype.destroy = function(cb) { 
     return Project.remove({id: this._id.$oid}, cb); 
    }; 

    return Project; 
}); 

我應該怎麼做,只顯示記錄的數據?

感謝

回答

1

返回一個服務,並通過您從中獲取接收()返回更新並銷燬該項目。

factory('Project', function($resource) { 
return { 
    get: function() { 
     return $resource('https://api.mongolab.com/api/1/databases' + 
     '/_____/collections/_________/:id', 
     {apiKey: '___________________'}, { 
     update: {method: 'PUT'} 
     }, 


update : function(itm, cb) { 
    return item.update({id: item._id.$oid}, 
    angular.extend({}, item, {_id: undefined}), cb); 
}, 

destroy : function(item, cb) { 
    return item.remove({id: item._id.$oid}, cb); 
}; 

否則,你可以實例只有一個,並引用它

factory('Project', function($resource) { 
var item =$resource('https://api.mongolab.com/api/1/databases' + 
     '/_____/collections/_________/:id', 
     {apiKey: '___________________'}, { 
     update: {method: 'PUT'} 
return { 


update : function(cb) { 
    return item.update({id: item._id.$oid}, 
    angular.extend({}, item, {_id: undefined}), cb); 
}, 

destroy : function(cb) { 
    return item.remove({id: item._id.$oid}, cb); 
}; 
+0

對不起,我是初學者,我只是不明白您的解決方案,我嘗試過,但一個有一些JS喜歡的錯誤:未捕獲的SyntaxError :爲行'更新中的異常標記功能:功能(項目,CB){' – user

+0

提供plunkr /的jsfiddle,我會盡量對其進行修改。 (你可以模擬蒙哥呼叫) – fabrizioM

+0

http://plnkr.co/edit/vGmB12hrEW0Hdde3zagF?p=preview點擊「編輯器」,你會看到我談到的問題。非常感謝! – user