0

我在 Aikau 中创建了一个小部件,其想法是在其中任何时候都只有一个小部件,并且它会动态地从一种类型切换到另一种类型。

我的程序如下:

  • 我删除了父亲小部件内的所有小部件
  • 我构建了新的小部件。

现在我的代码可以工作,但我不知道我是否正确地消除了所有的小部件子项。我没有在文档中找到任何功能来做到这一点:

swapWidget: function myPackage_myWidget__swapWidget(event) {
  // REMOVE ALL THE CHILDREN 
  // is it this ok?
  $(this.domNode).find('div').remove();

  var widgetId = event.widgetId
    , widget = this.widgetsPosibilities[widgetId]
    , clonedWidgets = lang.clone([widget])
    ;
  this.processWidgets(clonedWidgets, this.domNode);
},
postCreate :  function myPackage_myWidget__postCreate() {
  var event = {widgetId: this.initWidgetId};
  this.jumpWidget(event);

  this.alfSubscribe('MY_CUSTOM_EVENT', lang.hitch(this, this.swapWidget));

  this.inherited(arguments);
}

是否足以“ $(this.domNode).find('div').remove(); ”来消除所有子小部件?

一般来说,我更喜欢使用 JQuery,但也许正确的方法是使用 Dojo。

什么是最好的方法?

在 Aikau 的新版本中,什么会持续更长时间?

4

1 回答 1

3

您应该尝试使用DynamicWidgets。此小部件允许您配置可以使用小部件模型发布的订阅主题。DynamicWidgets 小部件将自动删除显示的小部件并呈现请求的小部件。

我绝对不会推荐您目前采用的方法,因为它不太可能成为未来的证明。如果您需要,我可以提供一些使用此小部件的示例,或者您可以查看单元测试应用程序中的示例。

于 2016-09-22T16:11:05.853 回答