0

我是 angularjs 和 mongolab 的初学者。

我有这段代码,可以在 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、姓名和响铃。我不知道为什么会显示“destroy:”和“update:”!可能是因为我使用此代码连接到 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;
});

我应该怎么做才能只显示记录数据?

谢谢

4

1 回答 1

1

返回服务并将您从 get() 收到的项目传递回更新和销毁。

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);
};
于 2013-10-17T19:15:01.180 回答