Dart 如何仅在实例化web组件时初始化html属性
假设您有一个自定义组件容器。该组件将 查看其中的任何html元素,并根据自定义 这些元素的html属性。例如,假设有一个 可按如下方式使用的比例属性:Dart 如何仅在实例化web组件时初始化html属性,dart,dart-webui,Dart,Dart Webui,假设您有一个自定义组件容器。该组件将 查看其中的任何html元素,并根据自定义 这些元素的html属性。例如,假设有一个 可按如下方式使用的比例属性: <x-container> <div proportion="0.2"> ... </div> <div proportion="0.5"> ... </div> <div proportion="0.3"> ... </div>
<x-container>
<div proportion="0.2">
...
</div>
<div proportion="0.5">
...
</div>
<div proportion="0.3">
...
</div>
</x-container>
...
...
...
忘记飞镖是一件合理的事情吗
html属性还是滥用?(注:我正在学习Dart和Web
UI作为我在web开发方面的第一次尝试-所以这可能是一个糟糕的结果
想法)
如果合理,我希望嵌套容器:
<x-container>
<x-container proportion="0.3">
...
</x-container>
<x-container proportion="0.3">
...
</x-container>
<div proportion="0.4">
...
</div>
<x-container>
...
...
...
通常,容器组件本身没有或不需要
比例成员变量,仅其包含的html元素可以
具有html属性。但是由于容器可以是一个
包含的元素我希望它能够有这样一个html
属性如何在实例中设置html属性
组件,而不尝试在
不存在且不应存在的成员变量
从答案来看
看起来这个建议是attribute=value,但是这个尝试
设置一个不存在的成员变量。如果您能够将您的需求转换为css而不是比例属性,则可以使用以下方法完成您想要的任务 在我的组件中,我将视图对象传递给组件,并且视图对象具有样式属性,该属性基于指定给视图对象的值动态生成 在下面的部分示例中,在我的组件dart代码中,我使用运行时传递的视图对象计算样式和类属性
CardView view;
String get cardClass => 'piece ${view.type} card classic clickable';
Map get cardStyle => view.styles;
在我的html代码中,我引用了这些getter,如图所示
<element name="x-playing-card" constructor="PlayingCardComponent" extends="div">
<template>
<div class="{{cardClass}}" on-click="select()"
style="{{cardStyle}}">
</div>
</template>
<script type="application/dart" src="xplayingcard.dart"></script>
</element>
通过类似的方式,我认为您可以实现与“比例”属性相同的功能,但是使用css。事实证明,存在一个阻止设置html属性的错误 展望未来: 当修复程序发布时,我们将能够设置html属性而无需绑定它们。此外,还将有一个新的需求来指定要绑定哪些实例化属性。在html实例化中指定但在组件元素定义的attributes=.中未指定的任何属性。。。将作为组件的html属性传递。此外,一般来说,当将数据从html实例化传递到html属性时(通过不将它们添加到attributes=…),最佳做法是将它们命名为data一些唯一的前缀-*,然后可以通过组件的数据集映射访问它们 讨论:
这些功能正在积极开发中,所以请期待更改。我不确定我是否理解,为什么您的
x-container
不能有一个比例
实例字段用于逻辑?我可以,但似乎不正确。在这种情况下,作为容器的作者,我知道比例。但假设在我的容器中,我使用的是另一个叫做weather_summary的小部件,它是由其他一些没有比例概念的开发人员编写的。同样的问题也存在。我不知道这样使用html属性是否是一种滥用。如果不是,似乎没有理由不允许在组件实例化时设置html属性。通常,内容提供者可以使用html属性将信息盲目地传递给组件容器,而不是组件本身。将x-weather-summary
包装在一个x-container
中,该容器具有比例
。这是我知道的唯一方法。在WPF/XAML中,这种东西可以像
那样编写,这很好,但我们在Web UI中没有这种点画功能。也许为Web UI项目提交一个bug并提高声音。谢谢。x-container代码在子对象上迭代以查找html属性比例。x-container不需要自己的比例。如果它有5个子项,每个子项通过其比例html属性请求20%的区域,那么它可以使用它们的布局。Web UI由代码生成驱动。有一组允许的属性(名称、扩展、构造函数、应用作者样式)。其他人在组件上生成对setter的调用,若该组件不存在,则会发生错误。为什么不,而不是错误,若setter存在,调用它,若并没有设置html属性。可能有用吗?谢谢-也许我不明白。元素的html属性集实际上是一个字典。一些键被采用(即标准化:id、样式、标题等),其他键则没有(比例、我的_数据等)。在实例化的时候,客户端可以在地图中填充内容,以便应用程序可以看到它。在本例中,您将数据cardClass从代码传递到html属性类。有用,但我认为不同的用例。