2016-12-07 5 views
0

こんにちは、入力フィールドの値をmongooseのデータで設定する

私はmongooseから価値を得ようとしています。編集ボタンをクリックすると、基本的に部門名のテキストボックスに部門名が表示されます。私は複数のことを試みたが失敗した。 (例えば、$('#departmentName').val(department.name))どうすれば適切に行うことができますか?ありがとうございました。

私の部署のハンドルバー

<h2>Departments List</h2> 
 
<div class="row"> 
 
\t <div class="col-lg-12"> 
 
\t \t <table class="table"> 
 
\t \t \t <thead> 
 
\t \t \t \t <tr> 
 
\t \t \t \t \t <th>Name</th> 
 
\t \t \t \t \t <th>Action</th> 
 
\t \t \t \t </tr> 
 
\t \t \t </thead> 
 
\t \t \t <tbody> 
 
\t \t \t \t <tr> 
 
\t \t \t \t \t <form method="POST" action="/departments/create_department"> 
 
\t \t \t \t \t \t <td><input class="form-control" type="text" placeholder="Department Name" name="departmentName" id="departmentName"></td> 
 
\t \t \t \t \t \t <td><button class="btn btn-primary" type="sumit">Add Department</button></td> 
 
\t \t \t \t \t </form> 
 
\t \t \t \t \t <td><button class="btn btn-info">Update</button></td> 
 
\t \t \t \t \t <td><button class="btn btn-info">Clear</button></td> 
 
\t \t \t \t </tr> 
 
\t \t \t \t {{#each departments}} 
 
\t \t \t \t <tr> 
 
\t \t \t \t \t <form method="POST" action="/departments/remove_department/{{_id}}?_method=DELETE"> 
 
\t \t \t \t \t \t <td>{{name}}</td> 
 
\t \t \t \t \t \t <td><button class="btn btn-danger" type="submit">Remove</button></td> 
 
\t \t \t \t \t </form> 
 
\t \t \t \t \t <form method="GET" action="/departments/edit_department/{{_id}}?"> 
 
\t \t \t \t \t \t <td><button class="btn btn-warning" value={{id}} type="submit">Edit</button></td> 
 
\t \t \t \t \t </form> 
 
\t \t \t \t </tr> 
 
\t \t \t \t {{/each}} 
 
\t \t \t </tbody> 
 
\t \t </table> \t 
 
\t </div> 
 
</div>

私の部署コントローラ

var express = require('express'); 
 
var router = express.Router(); 
 
var passport = require('passport'); 
 
var mongoose = require('mongoose'); 
 

 
var Departments = require('../models/department'); 
 
var User = require('../models/user'); 
 

 
// List of departments 
 
router.get('/add_department', userAuthenticated, function(req, res, next) { 
 
\t Departments.find(function(err, departments) { 
 
\t \t if (err) { 
 
\t \t \t throw err; 
 
\t \t } 
 
\t \t res.render('add_department', {title:'Add New Department', departments: departments, name: departments.name, id: departments._id}) 
 
\t }) 
 
}); 
 

 
// Edit department 
 
router.get('/edit_department/:id', userAuthenticated, function(req, res, next) { 
 
\t var departmentName = ""; 
 
\t Departments.findById(req.params.id).exec(function(err, department) { 
 
\t \t if (err) { 
 
\t \t \t throw err; 
 
\t \t } else { 
 
\t \t \t $('#departmentName').val(department.name); 
 
\t \t \t res.redirect('/departments/add_department'); 
 
\t \t } 
 
\t }) 
 
});

答えて

0

あなたはその後、ルートのうち、これを取るマングース

変化からこの

<td><input class="form-control" type="text" value={{name}} name="departmentName" id="departmentName"></td> 

にこの

<td><input class="form-control" type="text" placeholder="Department Name" name="departmentName" id="departmentName"></td> 

を照会値を表示するには、ハンドルバーに入力フィールドを変更してみてください可能性があり

$('#departmentName').val(department.name); 

UPDATE:

だから私はビューに{{名前}}渡すことができますどのようにこの

// List of departments 
router.get('/add_department', userAuthenticated, function(req, res, next) { 

// grab the deparment from the req 
var departmentFromEdit =""; 
if(req.query.dn){ 
    departmentFromEdit = req.query.dn; 
} 
Departments.find(function(err, departments) { 
    if (err) { 
     throw err; 
    } 
    res.render('add_department', {title:'Add New Department', departments: departments, name: departments.name, id: departments._id}) 
})}); 

// Edit department 
router.get('/edit_department/:id', userAuthenticated, function(req, res, next) { 
var departmentName = ""; 
Departments.findById(req.params.id).exec(function(err, department) { 
    if (err) { 
     throw err; 
    } else { 
     departmentName = encodeURI(department.name); 
     // dn for departmentName or defaultName 
     res.redirect('/departments/add_department?dn=' + departmentName); 
    } 
})}); 
+0

のようなもの?トラストres.redirect( '/ departments/add_department')を実行できますか? –

+0

さて、私は今参照してください。リダイレクトにURLパラメータを渡すことができます。 [このanwserを参照してください](https://stackoverflow.com/questions/19035373/how-do-i-redirect-in-expressjs-while-passing-some-context) –

+0

ビューでdepartmentNameにアクセスする方法はありますか?私はいくつかの方法をデコードする必要がありますか? –

関連する問題