-1

私は Bookshelf.js と hbs を初めて使用します。次の点についてご協力いただければ幸いです。

Bookshelf.js モデルからのデータを使用して、handlebars.js ビュー フォームを事前に入力したいと考えています。

hbs では、Bookshelf の get メソッドを使用して目的の属性値を取得できません。例: {{user.get(age)}}

モデルを JSON に変換しましたが、{{user.age}} などの hbs の特定の json 属性を照会できません。

JSON

{"id":1,"fullName":"Mike","password":"password","email":"mike@email.com","age":38,"gender":"male","created_at":1432736718951,"updated_at":1432736718951}

モデルから属性値を抽出するためにヘルパーを作成する必要がありますか?


function getUserModel(req, res, next) {
  User.forge({id: req.user})
    .fetch()
    .then(function(user){
      req.model = user;
      return next()
    })
    .catch(function(err){
      debug("Error loading userId[%s]", req.user);
      return next(err);
    });
}

router.use(ensureAuthenticated)
  .use(getUserModel);

router.get('/', function handlePhotoUploadGet(req, res, next) {
  var callback = "http://" + req.headers.host + "/cloudinary_cors.html";
  var params = {return_delete_token: true, callback: callback,
    timestamp: cloudinary.utils.timestamp()};
  var dataFormData = cloudinary.utils.sign_request(params);

  res.render('photos/upload',
    { title: 'Photo upload',
      cloudinary: cloudinary,
      dataFormData: JSON.stringify(dataFormData),
      user: req.model } 
  );
});

<input type="text" name="age" aria-label="age" value="{{user.age}}" placeholder="age" class="radius {{#if errors.invalidAttributes.fullName}}error{{/if}}" />

<input type="radio" name="gender" value="male" aria-label="Male" id="male" {{#if_equal user.gender 'male'}}checked{{/if_equal}}><label for="male">Male</label>
4

1 に答える 1