用于设置变量的AFMotion HTTP GET请求语法



我的目标是使用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回调的块语法。我不确定如何使用它。

我想打电话给

ViewController中的@posts = Post.all。这只是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,是的,这是一个完全不同的逻辑。您需要将要运行的代码(在完成时)放置在异步块中。如果它将经常更改,或者与您的模型无关,则传递一个&块到yoru方法,并在完成后使用该方法进行回调。

我希望这能有所帮助!

相关内容

  • 没有找到相关文章

最新更新