2012-08-06 1 views
1

У меня есть модель. У меня есть заметки, которые я добавляю к этой модели. Проблем нет.Как проверить, существуют ли данные в конкретном поле моей модели в магистрали?

Когда я создаю экземпляр представления, я хочу посмотреть, содержит ли data.objects содержимое в примечании.

Где я могу поставить инструкцию if? В представлении render? И как я могу это проверить.

js и backbone noob здесь, поэтому, пожалуйста, простите меня, что не хватает основ.

Лемме знаю и большое спасибо.

Любые ссылки на учебные пособия приветствуются.

UPDATE: Вот View для моей модели

var BlasterView = Backbone.View.extend({ 

    tagName: 'li', 
    className: 'blaster', 

    events: { 

     'click .td-blaster a': 'done' 

    }, 

    initialize: function() { 

     _.bindAll(this, 'render'); 

    }, 

    render: function(){ 

     this.$el.html(ich.blasterTemplate(this.model.toJSON())); 
     return this; 

    }, 

    done: function(){ 

     this.model.toggle(); 

     this.$el.animate({ 
      backgroundColor:'#faeca9' 
     }, 600).delay(600).fadeOut('fast'); 

     return false; 

    } 

}); 
+0

Это немного сложно понять, что здесь задают? Что это связано с позвоночником или тастипией? Какой код вы собрали сами. Покажите свои модели и свое мнение на данный момент –

+0

Конечно, извините. Я добавил представление. Пожалуйста, дайте мне знать, если есть смысл добавить больше. –

ответ

5
render: function(){ 

    if(this.model.get('particularField')){ 
     console.log('Particular Field has a value'); 
    }else{ 
     console.log('Particular Field does NOT have a value'); 
    } 

    this.$el.html(ich.blasterTemplate(this.model.toJSON())); 
    return this; 

}, 

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

if(this.model.get('particularField') && 
this.model.get('particularField').someChildAttr){ 

UPDATE:

«Магистраль теперь поддерживает свойство has» (через: @TyroneMichael). Поэтому вы можете просто использовать:

this.model.has('particularField') 
+0

Awesomeness! Я проверю это сегодня и отчитаюсь. Спасибо за ваше время! –

+0

Hurray !!! Большое спасибо, что это сработало отлично. –

+3

Магистраль теперь поддерживает свойство has. Таким образом, вы можете просто использовать this.model.has ('specificField'). – TYRONEMICHAEL