2013-02-20 55 views
1

我是網絡編程新手,當然還有YUI。YUI小部件 - 動態更新

我嘗試使用overlay,chart和node-menunav。 想知道是否有任何選擇使用JSON格式的動態數據創建這些小部件,並在新數據進入時更新小部件?

對於我們來說,所有的屬性都會來自服務器的JSON數據,然後使用這些數據我們需要渲染菜單欄,圖表,屬性瀏覽器。現在我沒有找到如何繼續這個要求。

謝謝。

回答

1

沒有通過Ajax同步窗口小部件的默認方式。默認情況下,只有更新其數據的方法是DataTable小部件。對於其餘部分,甚至對於DataTable的屬性,您都需要自己完成。

但是,如果數據和小部件足夠複雜,則應考慮使用YUI App Framework。模型和視圖的組合將幫助您用小部件創建複雜的佈局。 Model將爲您提供將屬性輕鬆鏈接到JSON後端的方法,特別是如果您使用的是RESTful API endpoint。而View將爲您提供設置標記和對事件做出反應的工具。

該模型的loadchange事件會讓你知道數據何時更新。所以,在你看來,你將能夠應對這些事件,並設置相應的屬性,在你的小工具:

var MyView = Y.Base.create('myView', Y.View, [], { 
    initializer: function() { 
    this.get('model').on('change', this._updateWidgets, this); 
    }, 
    _updateWidgets: function() { 
    var model = this.get('model'); 
    this.someWidget.set('someAttr', mode.get('someAttr')); 
    } 
}); 

但正如我說有這樣做的不正確的方式。你可以使用任何你喜歡的技術。 App框架只是一組可用於構建應用程序的基本組件。它旨在提供靈活性,以適應多種使用方式。其他方式可以直接使用IO或使用DataSources結合Widget插件。這是一個有很多正確答案的問題。