用于设置变量的 AFMotion HTTP GET 请求语法
AFMotion HTTP GET request syntax for setting variable
我的目标是使用 AFMotion 的 AFMotion::HTTP.get 方法设置实例变量。
我已经建立了一个 Post 模型。我想要这样的东西:
class Post
...
def self.all
response = AFMotion::HTTP.get("localhost/posts.json")
objects = JSON.parse(response)
results = objects.map{|x| Post.new(x)}
end
end
但根据文档,AFMotion 需要某种块语法,其外观和行为类似于异步 javascript 回调。我不确定如何使用它。
我希望能够打电话给
@posts = Post.all
在 ViewController。这只是一个 Rails 的梦想吗?谢谢!
是的,基本语法是异步的,因此您不必在等待网络响应时阻止 UI。语法很简单,将所有要加载的代码放在块中。
class Post
...
def self.all
AFMotion::HTTP.get("localhost/posts.json") do |response|
if result.success?
p "You got JSON data"
# feel free to parse this data into an instance var
objects = JSON.parse(response)
@results = objects.map{|x| Post.new(x)}
elsif result.failure?
p result.error.localizedDescription
end
end
end
end
既然你提到了Rails,是的,这是一个不同的逻辑。您需要将要 运行(完成时)的代码放在异步块中。如果它会经常改变,或者与你的模型无关,那么将一个 &block 传递给 yoru 方法,并在它完成时使用它来回调。
希望对您有所帮助!
我的目标是使用 AFMotion 的 AFMotion::HTTP.get 方法设置实例变量。
我已经建立了一个 Post 模型。我想要这样的东西:
class Post
...
def self.all
response = AFMotion::HTTP.get("localhost/posts.json")
objects = JSON.parse(response)
results = objects.map{|x| Post.new(x)}
end
end
但根据文档,AFMotion 需要某种块语法,其外观和行为类似于异步 javascript 回调。我不确定如何使用它。
我希望能够打电话给
@posts = Post.all
在 ViewController。这只是一个 Rails 的梦想吗?谢谢!
是的,基本语法是异步的,因此您不必在等待网络响应时阻止 UI。语法很简单,将所有要加载的代码放在块中。
class Post
...
def self.all
AFMotion::HTTP.get("localhost/posts.json") do |response|
if result.success?
p "You got JSON data"
# feel free to parse this data into an instance var
objects = JSON.parse(response)
@results = objects.map{|x| Post.new(x)}
elsif result.failure?
p result.error.localizedDescription
end
end
end
end
既然你提到了Rails,是的,这是一个不同的逻辑。您需要将要 运行(完成时)的代码放在异步块中。如果它会经常改变,或者与你的模型无关,那么将一个 &block 传递给 yoru 方法,并在它完成时使用它来回调。
希望对您有所帮助!