dart - 在嵌套模板中无法访问聚合物自定义元素属性

标签 dart dart-polymer

我有一个自定义元素,如下所示:

<polymer-element>
    <template if="{{primaryLoaded}}">
        <template repeat="{{pData in primaryData}}">
            <p>{{pData.propertyOne}}</p>
            <p>{{someClass.someOperation()}}</p>
            <template if="{{secodaryLoaded}}">
                <p>{{secondaryData.someProperty}}</p>
                <p>{{someClass.someOperation()}}</p>
            </template>
        </template>
    </template>
</polymer-element>

和相应的 Dart 文件:

class CustomElement extends PolymerElement with ObservableMixin
{
    @observable bool primaryLoaded = false;
    @observable bool secondaryLoaded = false;
    @observable var primaryData;
    @observable var secondaryData;
    @observable var someClass;

    void created()
    {
        primaryData = toObservable(new List<var>());
        secondaryData = toObservable(new List<var>());
    }

    void inserted()
    {
        someClass = new SomeClass();
        loadPrimaryData().then((pData) {
            primaryData = pData;
            primaryLoaded = true;
            loadSecondaryData().then((sData) {
                secondaryData = sData;
                secondaryLoaded = true;
            });
        });
    }
}
primaryData 一切正常.它的属性被打印出来并调用 someOperation()someClass正确打印其数据。

问题出在嵌套模板中。 <template if="{{secondaryLoaded}}"> 下没有任何内容被显示。甚至调用someClass.someOperation()无法显示任何内容。

这里的范围有问题吗?看起来外部模板可以毫无问题地引用 dart 文件中定义的属性,但嵌套模板不能。

我通过设置自定义绑定(bind)委托(delegate) here 阅读了有关在模板中将变量设置为全局变量的信息.但是,我无法将自定义元素中的 bindingDelegate 设置为 isTemplate返回假。

有没有其他方法可以在自定义模板中设置全局变量?还是我对这一切都错了?

最佳答案

这是一个错误。您可以对此问题加注星标以收到更改通知:

https://code.google.com/p/dart/issues/detail?id=12742



你现在唯一能做的就是把嵌套模板变成其他聚合物元素,或者想办法让模板不嵌套。

在你的情况下,而不是使用 if="primaryLoaded"你可以设置primaryData = null并且模板在 primaryData 之前不应显示任何内容已设置,假设 primaryData@observable .

关于dart - 在嵌套模板中无法访问聚合物自定义元素属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19498258/

相关文章:

dart - 是否可以在Polymer.dart中呈现List <Element>?

flutter - 用 Dart 条件设置变量

flutter - 改变多个按钮类型

dart - 如何从 Polymer Dart 触发自定义事件?

dart - Flutter:当我修改一个项目时,我的 ListView 没有更新

asynchronous - 关于 Dart future 的问题

Dart+Polymer 作为网页/应用程序/扩展程序在 Dart 编辑器之外无法正常工作

dart - 来自 Dart 的 Google 文件选择器

dart - 小部件树内的条件导航

dart - 如何在 Dart 3 Alpha 中启用 Dart 密封类(主分支)