使用文字对象作为 Backbone.Model
Posted
技术标签:
【中文标题】使用文字对象作为 Backbone.Model【英文标题】:Using a literal object as a Backbone.Model 【发布时间】:2015-01-10 16:41:49 【问题描述】:我需要将文字对象发送到视图。以下代码是否有更好的替代方法:
var model= (new (Backbone.Model)).set('foo':1,'bar':3)
【问题讨论】:
您正在创建一个模型并为其设置值。我没有看到提到的任何视图,请编辑并添加更多详细信息。 【参考方案1】:只是简单
var model = new Backbone.Model('foo':1,'bar':3)
【讨论】:
【参考方案2】:是的,如果您只是传入一些与视图数据无关的变量,那么您不应该传入模型。我可以想到另外两种更高效的方法将数据放入您的视图中。
在实例化时传递数据
每个视图都会接受传递给视图构造函数的参数,并将它们传递给视图initialize
(Backbone 对传入的参数做了更多的事情,但它们都以initialize
结尾)。让我给你看一个简单的例子。
var MyView = Backbone.View.extend(
initialize: function(options)
// All the parameter you pass into the view construct with will be
// in the initialize options
// Attach options to the view so you can access your options
// from all view properties (bound to the view)
this.options = options || ;
现在让你的对象字面量进入你的视图:
var aView = new MyView('foo':1,'bar':3);
aView.options.foo; // 1
aView.options.bar; // 3
在实例化后使数据可用
如果你想在实例化之后合并一个对象,那么只需使用_.extend
:
_.extend(aView, 'foo':1,'bar':3);
aView.foo; // 1
aView.bar; // 3
【讨论】:
以上是关于使用文字对象作为 Backbone.Model的主要内容,如果未能解决你的问题,请参考以下文章
当 JSON 对象作为字符串文字插入时,MySQL JSON 列丢失小数精度
在 TypeScript 中使用类型变量访问对象文字不起作用