Javascript 如何从类函数返回新的主干实例
我希望能够获得一个随机图书模型,如:Javascript 如何从类函数返回新的主干实例,javascript,jquery,backbone.js,coffeescript,Javascript,Jquery,Backbone.js,Coffeescript,我希望能够获得一个随机图书模型,如: book = App.Models.Book.random() 我在CoffeeScript中有以下Backbone.js模型 class App.Models.Book extends Backbone.Model @random: -> $.getJSON "/books/random", (data) -> new App.Models.Book author: data['author']
book = App.Models.Book.random()
我在CoffeeScript中有以下Backbone.js模型
class App.Models.Book extends Backbone.Model
@random: ->
$.getJSON "/books/random", (data) ->
new App.Models.Book
author: data['author']
title: data['title']
但是,我相信您可以看出,@random返回的是jqXHR对象,而不是实例。我已经检查过了,回调中的数据是正确的。这是Java | CoffeeScript,所有操作都是使用回调完成的。您不会从App.Models.book.random返回random book,而是给它一个回调函数:
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挂钩,那么您的随机类方法仍然会返回jqXHR。这是Java | CoffeeScript,所有操作都是通过回调完成的。您不会从App.Models.book.random返回random book,而是给它一个回调函数:
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挂钩,则您的随机类方法仍将返回jqXHR。调用
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}
召唤
课堂上
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}
非常感谢。布莱恩昨晚死了,非常感谢。布莱恩昨晚死了。