2016-04-03 8 views
0

私はMEAN.jsの初心者です。あるモジュールから別のモジュールにいくつかのデータを表示する際に問題があります。モジュールのデータを別のモジュールに表示する問題

私は自分の会社の仕事のリストを含む新しいCRUDモジュール「ジョブ」を作成しました。 このリストのジョブをユーザー(サンプルコードに含まれているもう1つの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からジョブとユーザーをロードする場所。私はあなたが両方のビューで使用されるコントローラの$スコープに読み込まれている必要があると思います。 –

+0

私はモジュールごとに1つのコントローラを持っています.1つはユーザ用、もう1つはロール用です。問題があるかもしれないと思いますが、$スコープにロードされたことはありません。 – Eld0w

関連する問題