我有两个模式,一个用于User,另一个用于Project。每个用户可以有多个项目,项目可以在用户之间共享。
他们是:
var ProjectSchema = new Schema({
title: String,
description: String,
path: String,
users: [{type: Schema.Types.ObjectId, ref: 'User'}],
active: Boolean
});
var UserSchema = new Schema({
name: String,
username: {type: String, unique: false},
email: { type: String, lowercase: true },
role: {
type: String,
default: 'user'
},
projects: [{type: Schema.Types.ObjectId, ref: 'Project'}],
hashedPassword: String,
provider: String,
salt: String,
github: {}
});
在客户端,我有一个身份验证服务Auth,可以为当前用户提供Auth.getCurrentUser()
和两个服务,分别用于访问用户和项目资源。
我如何得到类似的东西?
<h1>{{currentUser.username}}' projects:</h1>
<ul id="project-list">
<li ng-repeat="project in projects">{{project.title}}</li>
</ul>
澄清。我忘了提到用户服务有listProjects
方法,它为用户JSON提供了已填充的项目。这是服务的代码:
angular.module('myapp')
.factory('User', function ($resource) {
return $resource('/api/users/:id/:controller', {
id: '@_id'
},
{
changePassword: {
method: 'PUT',
params: {
controller:'password'
}
},
pushProject: {
method: 'PUT',
params: {
controller: 'project'
}
},
listProjects: {
method: 'GET',
params: {
controller: 'project'
}
},
get: {
method: 'GET',
params: {
id:'me'
}
}
});
});
服务器部分有效。我只是无法弄清楚如何让控制器为上面的HTML工作。