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