YUI小部件 - 动态更新

时间:2013-02-20 14:51:29

标签: web yui yui3

我是网络编程的新手,当然也是YUI的新手。

我尝试使用overlay,chart和node-menunav。 想知道是否有任何选项可以使用JSON格式的动态数据创建这些小部件,并在新数据进入时更新小部件?

对于我们来说,所有属性都将来自服务器的JSON数据,然后使用该数据我们需要渲染菜单栏,图表,属性浏览器。现在我没有找到如何继续这个要求。

感谢。

1 个答案:

答案 0 :(得分:1)

没有通过Ajax同步小部件的默认方式。默认情况下,唯一一个更新其数据的方法是DataTable小部件。对于其余的,甚至对于DataTable的属性,您需要自己完成。

但是,如果数据和小部件足够复杂,则应考虑使用YUI App Framework。模型和视图的组合将帮助您使用小部件创建复杂的布局。 Model将为您提供一种方法,可以轻松地将属性链接到JSON后端,特别是如果您使用的是RESTful API endpointView将为您提供设置标记和对事件做出反应的工具。

模型的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插件结合使用。这是一个有很多正确答案的问题。