[英]How do I call my non static function from another class without making a new instance of class? - React Native Router Flux
[英]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)Script,其中所有操作都使用回调完成。 您不会从App.Models.Book.random
返回随机书, 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
。
呼叫
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}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.