2013-03-22 3 views
1

Я пытаюсь создать блог с помощью Compound.js. У меня есть две таблицы: «Категория» и «Почта», в каждом я имею свойство даты, но когда я генерирую таблицы, я получил форму с вводом для свойства даты в каждом «новом» представлении ...Обновление свойств контроллера с Compound.js

Я хочу обновить дату propperty автоматически в моем контроллере, когда это будет создано.

Как это сделать?

Мои Шма:

var Category = describe('Category', function() { 
    property('name', String); 
    property('date', Date); 
    set('restPath', pathTo.categories); 
}); 

var Post = describe('Post', function() { 
    property('title', String); 
    property('content', String); 
    property('published', Boolean); 
    property('date', Date); 
    set('restPath', pathTo.posts); 
}); 

Category.hasMany(Post, {as: 'posts', foreignKey: 'categoryId'}); 

Моя модель:

module.exports = function (compound, Category) { 
    // define Category here 
}; 

Мой контроллер:

action('new', function() { 
    this.title = 'New category'; 
    this.category = new Category; 
    render(); 
}); 

action(function create() { 
    Category.create(req.body.Category, function (err, category) { 
     respondTo(function (format) { 
      format.json(function() { 
       if (err) { 
        send({code: 500, error: category && category.errors || err}); 
       } else { 
        send({code: 200, data: category.toObject()}); 
       } 
      }); 
      format.html(function() { 
       if (err) { 
        flash('error', 'Category can not be created'); 
        render('new', { 
         category: category, 
         title: 'New category' 
        }); 
       } else { 
        flash('info', 'Category created'); 
        redirect(path_to.categories); 
       } 
      }); 
     }); 
    }); 
}); 

ответ

0

Если вы хотите, чтобы установить дату по умолчанию вы можете сделать это в Схема аналогична схеме:

var Category = describe('Category', function() { 
    property('name', String); 
    property('date', Date, {default: new Date}); 
    set('restPath', pathTo.categories); 
}); 

Если вы не хотите, чтобы пользователь видел поле даты, вы можете удалить его из разметки вида, поскольку объект данных уже предварительно заполнен.

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