【问题标题】:How do I check to see if data exists in a particular field of my model in backbone?如何检查数据是否存在于主干模型的特定字段中?
【发布时间】:2012-08-03 23:08:16
【问题描述】:

我有一个模型。 我有添加到该模型的注释。 没有问题。

我在实例化视图的时候,想看看data.objects是否有note里面的内容。

我应该把 if 语句放在哪里?在视图渲染中?以及如何对其进行测试。

js 和骨干菜鸟在这里,所以请原谅我错过了基础知识。

让我知道,非常感谢。

欢迎任何对教程的引用。

更新:这是我的模型的视图

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;

    }

});

【问题讨论】:

  • 这里问什么有点难看?这与骨干或美味派有什么关系?您自己编写了什么代码。展示当前使用您的模型和视图
  • 当然,很抱歉。我添加了视图。请让我知道添加更多内容是否有意义。

标签: backbone.js tastypie


【解决方案1】:
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;

},

如果您的意思是该字段也是一个对象的实例,只需执行此操作,检查 specificField 是否为空,并检查嵌套属性是否已设置:

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

更新:

“Backbone 现在支持 has 属性”(来自:@TyroneMichael)。所以你可以使用:

this.model.has('particularField')

【讨论】:

  • 太棒了!我今天会检查一下并报告。感谢您的宝贵时间!
  • Backbone 现在支持 has 属性。所以你可以只使用 this.model.has('particularField')。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-08
  • 2015-02-27
  • 2019-03-05
  • 1970-01-01
  • 2019-03-14
相关资源
最近更新 更多