【问题标题】:Aurelia Custom Binding ErrorAurelia 自定义绑定错误
【发布时间】:2017-12-18 10:20:42
【问题描述】:

我正在使用 Aurelia 和 Typescript,并且有一个自定义元素在传递数据后生成一个表格,我希望显示的表格字段基于我传入的数组生成,然后使用值转换器以更改某些显示的方式, 我正在尝试创建一个自定义绑定,因此绑定是从传入的数组动态生成的,并且一直遵循本指南:https://blog.ashleygrant.com/2017/07/09/getting-my-hands-dirty-with-aurelias-binding-engine/ 尽管我无法让它完全像他一样工作并且不得不更改一些位。

我调用自定义绑定的 HTML

<require from="services/custom-binding/dynamic-binding-behaviour"></require>
<require from="services/data-format"></require><!--ValueConverters-->
...
    <tbody>
        <tr repeat.for="ticket of listData">
            <td repeat.for="fieldTest of listDisplay">${ticket & dynamic:'ticket':fieldTest}</td>
        </tr>
    </tbody>

还有自定义绑定类

@inject(Parser)
export class DynamicBindingBehavior {

constructor(private parser: Parser) {
}

bind(binding: BindingWithStorage, source: Scope, dataItem: string, args: FieldList) {

    let arg = dataItem + '.' + args.field;

    if (args.valueConverter) {
        arg += ' | ' + args.valueConverter;
    }
    let parsedExpression: Expression = this.parser.parse(arg);
    binding.originalSourceExpression = binding.sourceExpression;

    binding.sourceExpression = parsedExpression;
}

unbind(binding: BindingWithStorage, source: Scope) {
    console.log('unbind');
    if (binding.originalSourceExpression) {
        binding.sourceExpression = binding.originalSourceExpression;
    }
    binding.originalSourceExpression = null;
    }
}    

当我运行此程序时,数据将显示许多表格单元格的 [object Object],然后才会出现某些内容,并且它开始按我预期的方式显示。每次我导航到新页面或刷新时,它将是完全相同的行和列,它将开始正确显示,所以我想这与 aurelia 生命周期有关。

console.log('unbind') 永远不会显示在控制台中,所以我不确定这是否也是问题的一部分,我不太了解 Aurelia 的工作原理,无法理解它是否会。

在我提供的链接中,表达式被重新设置,但我无法让它工作,也无法真正理解它在那里试图做什么。

【问题讨论】:

  • 您应该提供一个要点。还有一个问题:行为文件名是否正确?
  • 文件名肯定是正确的,对于显示的部分数据,该行为按预期工作,我希望这是我正在制作的代码中的一个明显错误,我会尝试在周末吧

标签: typescript aurelia


【解决方案1】:

这是我不久前制作的原型。从来没有开始实施编辑作品。支持冻结列、分组并使用虚拟化处理大量数据。

https://gist.run/?id=9782317010240c90fc30e179eeb41064

https://gist.github.com/jdanyow/9782317010240c90fc30e179eeb41064

【讨论】:

  • 干杯,我会在周末尝试让这个工作,只是快速浏览一下我看不到你在哪里使用 SetAttributeBindingBehavior 如果没有类似 something.bind="item &设置属性”?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-07
  • 2016-10-06
  • 2016-06-08
  • 2016-06-10
  • 1970-01-01
相关资源
最近更新 更多