我想在angularjs页面中显示Authenticated用户的朋友。
// Find a list of Friends
$scope.find = function() {
$scope.friends = Authentication.user.friends;
$scope.firstFriendName = Authentication.user.friends;
};
我正在使用带有nodejs的mongoose。(MeanJS)
如何在meanjs中填充当前用户的朋友?
感谢。
答案 0 :(得分: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
答案 1 :(得分: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'
}
});
然后你将使用MEANJS使用的Mongoose内置的populate()
方法。如果使用生成器构建CRUD模块,您实际上可以看到它是如何工作的。然后,您可以查看特定视图的快速控制器,您将看到它如何使用populate()(这是您在生成crud模块时在快速控制器中看到的list
函数。
Friends.find().sort('-created').populate('user', 'displayName').exec(function(err, friends) {
// Handle error & return friends code here
});
希望有所帮助。然后,您需要查看角度控制器和视图,以便您可以修改控制器中的对象并将其反映在视图中。