angular - DragulaModel 不适用于动态数据

标签 angular issue-tracking ng2-dragula

当我的数据通过 AJAX 获取时,我正在使用 ng2-dragula 和 mi 组件 var 在拖放后没有更新。

这是我的html代码:

    <div class='wrapper'>
  <div class='container' [dragula]='"another-bag"' [dragulaModel]='many'>
    <div *ngFor='let text of many' [innerHtml]='text'></div>
  </div>
  <div class='container' [dragula]='"another-bag"' [dragulaModel]='many2'>
    <div *ngFor='let text of many2' [innerHtml]='text'></div>
  </div>
</div>

这是我的 component.ts:

public many: Array<string> = ['The', 'possibilities', 'are', 'endless!'];
  public many2: Array<string> = ['Explore', 'them'];

  constructor(private dragulaService: DragulaService) {
    dragulaService.dropModel.subscribe((value) => {
      this.onDropModel(value.slice(1));
    });
    dragulaService.removeModel.subscribe((value) => {
      this.onRemoveModel(value.slice(1));
    });
  }

  private onDropModel(args) {
    let [el, target, source] = args;
    // do something else
  }

  private onRemoveModel(args) {
    let [el, source] = args;
    // do something else
  }

在此示例中,DragulaModel 正在运行,因为数据是静态数组。 但是当我用 ajax 填充这个数组时,dragulaModel 不工作。 例如,我使用的方法执行 ajax,然后在我的 many 或 many2 var 中订阅数据。

非常感谢!

最佳答案

问题是 [dragulaModel] 的 init 被绑定(bind)到 many,在 ajax 值到达之前,其值仍然是 undefined .您可以将 *ngIf="many" 添加到包装器中,以确保 many 在 dragula init 之前具有值。

关于angular - DragulaModel 不适用于动态数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50378479/

相关文章:

javascript - Angular 2 将 APP_BASE_HREF 设置为来自 Promise/Observable 的值

angular - 使用 ng2-dragula 拖动和交换网格列表

Angular 2 Dragula 模型更新不正确

angular - 在 Angular 2 中的对象的所有属性中搜索字符串

javascript - ionic 2 : "Property ' number' does not exist on type 'typeof"

javascript - Angular 6 表单未将变量传递给 URL

JIRA:jira 问题可以从完成中移出吗?

testing - 从头开始采用软件项目管理和测试协议(protocol)

gitlab - 引用 gitlab 中提交消息中的问题

javascript - dragula - 如何禁用在其父容器中的拖动