1

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

我尝试使用覆盖、图表和节点菜单。想知道是否有任何选项可以使用 JSON 格式的动态数据创建这些小部件并在新数据进入时更新小部件?

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

谢谢。

4

1 回答 1

1

没有通过 Ajax 同步小部件的默认方式。默认情况下,唯一带有更新数据方式的小部件是 DataTable 小部件。其余的,甚至是DataTable的属性,都需要自己动手。

但是,如果数据和小部件足够复杂,您应该考虑使用YUI App Framework。模型和视图的组合将帮助您使用小部件创建复杂的布局。模型将为您提供一种轻松将属性链接到 JSON 后端的方法,特别是在您使用RESTful API 端点时。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 Plugins使用。这是一个有很多正确答案的问题。

于 2013-02-20T15:11:55.693 回答