我如何从类函数返回新的主干实例
How do I return new Backbone instance from class function
我希望能够获得一个随机的Book模型,如:
book = App.Models.Book.random()
我有以下Backbone.js模型(在CoffeeScript)
class App.Models.Book extends Backbone.Model
@random: ->
$.getJSON "/books/random", (data) ->
new App.Models.Book
author: data['author']
title: data['title']
但是,我相信您可以看出,@random返回的是jqXHR对象,而不是实例。我已经检查过了,data
在我的回调中是正确的。
这是(Java|Coffee)脚本,一切都是使用回调完成的。你不会从App.Models.Book.random
中返回随机的书,你会给它一个回调函数:
class App.Models.Book extends Backbone.Model
@random: (callback) ->
$.getJSON "/books/random", (data) ->
book = new App.Models.Book
author: data['author']
title: data['title']
callback?(book)
,然后使用它:
App.Models.Book.random (book) ->
# Do something useful with book in here
如果调用者想要访问所有通常的花哨的AJAX钩子,您的random
类方法仍然会返回jqXHR
。
Call
book = App.Models.Book.random()
在课堂上class App.Models.Book extends Backbone.Model
@random: ->
temp = new App.Models.Book()
temp.url = "/books/random"
temp.fetch {wait: true} # or whatever parameters you want
那应该可以完成你的工作。
但对我来说,我更喜欢非类函数的方式。
book = new App.Models.Book()
book.getRandomData()
在课堂上class App.Models.Book extends Backbone.Model
getRandomData: =>
@url = "book/random"
@fetch {wait: true}
相关文章:
- ES6构造函数返回基类的实例
- 当与另一个实例进行比较时,我的类实例如何隐式返回数字
- 尝试使用多个Twenty20实例,但有些实例的高度返回为0,并且不显示
- 司 司长.使用 find() 时返回未定义的集合实例
- 返回实例'for循环中的id
- angular.injector在每次调用时返回新的服务实例
- 如何匹配并返回一个字符串的多个实例,其中单个撇号可以包含在任何索引中
- 运算符的 JavaScript 实例在应该为 false 时返回 true
- 类型运算符和实例运算符为同一 var 返回不同的信息
- 如何在javascript中使用构造函数返回实例或sthelse
- 我想在实例化对象时返回 false
- 为什么我的 JavaScript 实例返回相同的内容
- 函数是否无法返回构造函数并创建新实例
- 创建 createJS 对象的新实例每次都会返回相同的实例
- 从对象返回函数会破坏实例
- 不能形成返回自身的函数的新实例
- 始终返回相同的类实例
- Backbone fetch返回我的模型的所有实例
- RxJS 5子类Observable-静态方法返回父类的实例
- Javascript:从返回超类实例的函数中设置子类原型的好处