Module 发出以将数据从一个模块显示到另一个模块

Module 发出以将数据从一个模块显示到另一个模块,module,mongoose,crud,mean-stack,Module,Mongoose,Crud,Mean Stack,我是MEAN.js的初学者,在将一些数据从一个模块显示到另一个模块时遇到了问题 我已经成功地创建了一个新的CRUD模块“作业”,其中包含了我公司的作业列表。 我想将此列表中的作业与用户关联(这是示例代码中包含的另一个crud模块) 当我在管理面板上编辑用户时,我希望能够从列表中选择作业,并将其设置为数据库中的用户 以下是我从现在开始所做的: user.server.model.js var UserSchema = new Schema({ //username, firstname etc

我是MEAN.js的初学者,在将一些数据从一个模块显示到另一个模块时遇到了问题

我已经成功地创建了一个新的CRUD模块“作业”,其中包含了我公司的作业列表。 我想将此列表中的作业与用户关联(这是示例代码中包含的另一个crud模块) 当我在管理面板上编辑用户时,我希望能够从列表中选择作业,并将其设置为数据库中的用户

以下是我从现在开始所做的:

user.server.model.js

var UserSchema = new Schema({
  //username, firstname etc.
  job: {
    type: Schema.ObjectId,
    ref: 'job'
  }
});
var JobSchema = new Schema({
   name:{
      type: String
   }
});
job.server.model.js

var UserSchema = new Schema({
  //username, firstname etc.
  job: {
    type: Schema.ObjectId,
    ref: 'job'
  }
});
var JobSchema = new Schema({
   name:{
      type: String
   }
});
我的html,尝试将它们链接到:

编辑-user.client.view.html

//Set a job for a user
<select ng-options="job.name for job in vm.jobs"></select> // <--- this doesn't work
job.client.controller.js

angular.module('users.admin').controller('UserController', ['$scope', '$state', 'Authentication', 'userResolve',function ($scope, $state, Authentication, userResolve) {
$scope.authentication = Authentication;
$scope.user = userResolve; //...
angular
    .module('jobs')
    .controller('JobsController', JobsController);

  JobsController.$inject = ['$scope', '$state', 'Authentication', 'jobResolve'];

  function RolesController ($scope, $state, Authentication, job) {
    var vm = this;

    vm.authentication = Authentication;
    vm.job = job; //...
angular
  .module('jobs')
  .controller('JobsListController', JobsListController);
JobsListController.$inject = ['JobsService'];
function JobsListController(JobsService) {
  var vm = this;
  vm.roles = JobsService.query();
}
list-job.client.controller.js

angular.module('users.admin').controller('UserController', ['$scope', '$state', 'Authentication', 'userResolve',function ($scope, $state, Authentication, userResolve) {
$scope.authentication = Authentication;
$scope.user = userResolve; //...
angular
    .module('jobs')
    .controller('JobsController', JobsController);

  JobsController.$inject = ['$scope', '$state', 'Authentication', 'jobResolve'];

  function RolesController ($scope, $state, Authentication, job) {
    var vm = this;

    vm.authentication = Authentication;
    vm.job = job; //...
angular
  .module('jobs')
  .controller('JobsListController', JobsListController);
JobsListController.$inject = ['JobsService'];
function JobsListController(JobsService) {
  var vm = this;
  vm.roles = JobsService.query();
}
已解决,将我的作业服务注入到我的用户控制器中完成了以下操作:

angular.module('users.admin').controller('UserController', ['$scope', '$state', 'Authentication', 'JobsService', 'userResolve',
  function ($scope, $state, Authentication, JobsService, userResolve) {
    $scope.authentication = Authentication;
    $scope.user = userResolve;
    $scope.jobs = JobsService.query();

这必须在服务器端端点中完成。 假设您有这样一条路线:

router.post('/users/', function(req, res, next) {
    var user = new User(req.body);
    user.job = req.job;

    user.save(function(err, user) {
         if(err) { return next(err); }        
         res.json(user);
    });
});

谢谢你的帮助,我知道这是必要的,以更新用户的工作选择,但我没有解释清楚我的问题,它是上游(我是一个真正的新手与均值.js)。实际上,vm.jobs没有从我的数据库中检索任何内容,我不知道如何从编辑用户视图内部调用它,因为它在另一个模块中。你能发布你的AngularJS控制器代码吗?从API加载作业和用户的位置。我想您需要在视图中使用的控制器的$scope中加载这两个控制器。每个模块有一个控制器:一个用于用户,一个用于角色,我想这可能是问题所在,我从来没有在$scope中加载过这两个控制器。