2013-12-11 3 views
0

У меня есть два контроллера, а именно пользователь и календарь. Я должен передать пользовательский объект от пользователя к календарю. Как передать переменную через несколько контроллеров в парусах?передать переменную через несколько контроллеров в парусах

+0

Что вас фактически означают, передавая переменные от контроллера к другому? Почему вы не можете просто назвать свою модель внутри своего контроллера. Или вы можете создать службу в/api/services и вызвать ее по всему миру. Если вы дадите мне более подробную информацию, я обязательно отвечу за вас. – VladNeacsu

ответ

0

Сверху моей головы я бы сказал, что вы можете использовать session. Хотя с точки зрения дизайна, ситуация, когда вы передаете переменную от одного контроллера к другому, должна быть действительно сомнительной.

0

В вашем CalendarController.js:

module.exports = { 

foo: function(req, res, next) { 

    User.findOne(2).exec(function(err, user) { 

     if (err) return next(err); 

     res.json(user); 

    }); 
}, 


/** 
* Overrides for the settings in `config/controllers.js` 
* (specific to CalendarController) 
*/ 
_config: {} 

}; 
+0

@Johngait. Мы снова ищем объект в контроллере. Как мы можем сохранить результат в переменную и передать это в другой контроллер. –

1

Я только начинаю с парусами (и Node.js вообще говоря), но я fearly общего с JavaScript (клиент стороннего).

Единственный способ, которым я узнал, - использовать область переменной. Если вы объявите переменную перед любой анонимной функцией, вы сможете редактировать эту переменную внутри функции. Так внутри действия в контроллере вы будете иметь что-то вроде:

 //this will allow me to store my informations inside the categories variable. 
     var categories; 
     Categories.find().done(function(err, cat){ 
      categories = cat; 
     }); 

     //calling another datas and passing them to the view, alongside with my previous datas 
     Categories.findOne(id).done(function(err, cat){ 
      return res.view({ 
       data : cat, 
       cats : categories 
      }); 
     }) 

Я уверен, что они много более эффективных способов, и я заинтересован в зная их =)

+0

попробовал это и посмотрел переменную (категории), используя точку останова. Он равен кошке внутри сделанной функции, но как только он выходит из области действия (выполняемая функция), ее значение изменяется на неопределенный. –

Смежные вопросы