0

我从服务中获取数据,然后将数据设置为我的bean对象,并希望在我的视图中使用相同的数据,现在在rails视图中以表单的形式显示它。现在我想用主干验证这个表单。Backbone With Rails

我是Rails和Backbone的新手。

请给我一个关于如何继续这个想法。

+0

我的骨干视图将如何识别标识DOM中表单的tagName和id属性? – unknown

回答

0

我想你可能对Web应用程序的工作方式感到困惑。 Backbone是一个客户端端架构;它使用在用户浏览器中运行的Javascript代码。 Rails是一个服务器端架构;它使用在您的服务器上运行的Ruby代码。

鉴于此,您的Backbone代码和您的Rails代码必须完全分离。这两者只能通过两种方式进行通信:

1)您的Rails代码可以将<script>标签写入页面(在.html.erb文件中),并将可变数据放在那里;例如:

<script> 
var myVarFromRails = '<%= someRailsVariable %>'; 
</script> 

当从服务器恢复(即当您查看源代码的网页。),将被转换到:

<script> 
var myVarFromRails = 'foo'; 
</script> 

(假设“富”是的someRailsVariable值)。

2)您的Java脚本代码可以向Rails URL发出AJAX请求,并且无论Rails代码吐出的是什么,都会返回作为对您的AJAX请求的响应。换句话说,你可以这样做:

$.ajax({url: someRailsUrl, complete: function(response) { 
     // whatever the server sent back will be inside the "response" variable 
}}); 

除此之外两者几乎完全独立的,如果你想要做同样的事情在他们两个(例如验证表单。)实际上需要写代码两次,Ruby一次,Javascript一次。

我说“本质上”,因为有Rails插件以不同的方式为你做#1和#2。我不是Rails的专家,即使我有这么多的插件,你真的需要找出自己的问题,找出存在什么以及对你的代码库有什么意义。

希望有所帮助。

*编辑*

我知道我只是说我不会列出库,但后来我意识到,这将会是更有益的,如果我至少提供了一些让你开始。只是不要把这些当做佳能;他们现在只是一些流行的图书馆,但他们可能会或可能不适合你。

  1. https://github.com/codebrew/backbone-rails
  2. https://github.com/meleyal/backbone-on-rails
  3. https://github.com/aflatter/backbone-rails
  4. https://learn.thoughtbot.com/products/1-backbone-js-on-rails
  5. http://kiranb.scripts.mit.edu/backbone-slides/

这最后两个是不实际的库,他们是一本书/演示,但我认为他们可能会有用。

+0

P.S.如果你没有困惑,而且你实际上只是问“我如何在Backbone中验证表单?”,基本的答案是你使用Backbone.View来包装表单,并添加逻辑来设置表单的数据在Backbone.Model中。然后你在该模型上定义一个验证方法,为它添加验证逻辑,并且你已经完成设置。如果您希望将该表单数据发送到服务器,则只需调用'model.save()'(假设您已在该模型中定义了一个url)。 – machineghost

+0

感谢您的回答......我不会对此感到困惑,而且我已经执行了所有指定的操作。但是我很困惑如何在浏览器上显示消息。我正在检查验证器的isValid方法并且只能够现在显示警报。 – unknown

+0

我仍然难以理解您的问题:“我正在检查验证程序的isValid方法,现在只能显示警报”甚至不是一个语法句子,让独自一个完整的解释,你正在做什么,什么是不工作的。如果你想从堆栈溢出的帮助,你会更成功,如果你详细说明(最好编辑你的问题),并花时间沟通清楚。 – machineghost