0

我想在 angularjs 页面中显示经过身份验证的用户的朋友。

// Find a list of Friends
    $scope.find = function() {
        $scope.friends = Authentication.user.friends;
        $scope.firstFriendName = Authentication.user.friends;
    };

我正在使用带有 nodejs 的猫鼬。(MeanJS)

如何在meanjs中填充当前用户的朋友?

谢谢。

4

2 回答 2

0
var PersonSchema = new Schema({
    name: {
        type: String,
        default: '',
        required: 'Please fill Person name',
        trim: true
    },
    desc:{
      type: String,
      default: '',
      trim: true
    },
    friends:[{
      type: Schema.ObjectId,
      ref: 'User'
    }],
    ,
    created: {
        type: Date,
        default: Date.now
    },
    user: {
        type: Schema.ObjectId,
        ref: 'User'
    }
});

然后,您将使用populate()MEANJS 使用的 Mongoose 内置的方法。如果您使用生成器构建 CRUD 模块,您实际上可以看到它是如何工作的。然后您可以查看特定视图的 express 控制器,您将看到它如何使用 populate() (这几乎是您list在生成 crud 模块时在 express 控制器中看到的函数。

Friends.find().sort('-created').populate('user', 'displayName').exec(function(err, friends) {
    // Handle error & return friends code here
});

希望有帮助。然后,您需要查看角度控制器和视图,以便您可以修改控制器中的对象并将其反映在视图中。

于 2015-02-08T05:55:29.200 回答
0

扩展用户对象或添加自定义模型,例如 Person ,它由用户引用和朋友列表组成:

/**
 * Person Schema
 */
var PersonSchema = new Schema({
    name: {
        type: String,
        default: '',
        required: 'Please fill Person name',
        trim: true
    },
    desc:{
      type: String,
      default: '',
      trim: true
    },
    friends:[{
      rate: Number,
      date: Date
    }],
    ,
    created: {
        type: Date,
        default: Date.now
    },
    user: {
        type: Schema.ObjectId,
        ref: 'User'
    }
});

mongoose.model('Person', PersonSchema);

然后编写相应的控制器和视图。或者只使用 meanJS 生成器:

yo meanjs:crud-module Persons

然后将适当的更改添加到模块中。顺便说一句,有一个类似的东西似乎修补了用户模式:moongose-friends

于 2015-01-04T21:13:21.323 回答