2016-03-04 45 views
0

使用backbone.js,我有一個表單提交後,提交後,savepost()函數將其重定向到儀表盤url。儀表板是一個不同的視圖,並希望該頁面說「您的帖子已提交」。我可以使用localstorage,但不想依賴它。使用backbone.js

我也看到流行的event aggregator options,但不知道這是否會在不同頁面呈現視圖。

enter image description here

+0

沒有什麼錯視'localStorage'。它得到了廣泛的支持。您也可以使用cookie或通過第二個視圖上的請求進行檢查。 –

+0

謝謝Onur,我忘了Cookies。非常感謝答覆。 – Trewq

回答

1

聽起來像是你需要一個全球性的事件總線。

這裏有一個很好的例子的jsfiddle,筆者在小提琴記

https://jsfiddle.net/JamesOR/m8J9L/

var eventBus = _.extend({}, Backbone.Events); 

然後,儀表板視圖內,監聽的事件。在小提琴中,您會注意到作者使用.on。這是舊式風格,骨幹作者現在推薦listenTo,因爲一旦刪除視圖,所有偵聽器都會自動刪除。這是不是與on

initialize: function() { 
    this.listenTo(eventBus,'formSubmitted',this.onFormSubmit); 
} 

然後,當表單提交的情況下,觸發該事件。

eventBus.trigger('formSubmitted', /** data that you want to send to handler*/); 

在處理方法

onFormSubmit:function(/** data that sent to this handler*/){ 
    //code here 
} 
+0

優秀的解決方案 - 謝謝! – Trewq