2016-04-03 80 views
0

我是MEAN.js的初学者,并且在显示某个模块中的某些数据时出现问题。将数据从模块显示到另一个模块的问题

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

以下是我从现在开始已经于:

user.server.model.js

var UserSchema = new Schema({ 
    //username, firstname etc. 
    job: { 
    type: Schema.ObjectId, 
    ref: 'job' 
    } 
}); 

job.server.model.js

var JobSchema = new Schema({ 
    name:{ 
     type: String 
    } 
}); 

我的HTML,其中i尝试链接它们两个:

edit-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 

谢谢你的帮助:)!

编辑: user.client.controller.js

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

job.client.controller.js

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; //... 

列表job.client.controller.js

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(); 

回答

0

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

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); 
    }); 
}); 
+0

谢谢你的帮助,我明白,这是需要更新与所选择的作业的用户,但我没有解释清楚我的问题,这是上游它(我是一个真正的新手与mean.js)。实际上,vm.jobs没有从我的数据库中检索任何东西,我不知道如何在编辑用户视图中调用它,因为它在另一个模块中。 – Eld0w

+0

你可以发布你的AngularJS控制器代码吗?您在API中加载作业和用户的位置。我想你需要同时加载在视图中使用的控制器的$ scope中。 –

+0

我有一个控制器为每个模块:一个用户和一个角色,我认为这可能是问题,我从来没有加载在$范围内。 – Eld0w

相关问题