2013-02-20 57 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插件。这是一个有很多正确答案的问题。