【问题标题】:Is there a template creation Event in Darts Web_ui?Darts Web_ui 中是否有模板创建事件?
【发布时间】:2013-06-11 15:58:13
【问题描述】:

有没有类似模板实例化的通知机制?

假设以下简单模板:

<template iterate="name in names"> 
  <div>{{name}}</div>
</template>

当名称很长时,名称div 的容器可能会溢出。所以我想做的是在名称 div 添加到 DOM 时获取一个事件,以便我可以查看生成的宽度。然后我会缩短名称,直到合适为止。

【问题讨论】:

    标签: dart dart-webui


    【解决方案1】:

    注意:我假设您无法使用 CSS 实现您想要的。所以这里有一个代码解决方案。

    我不知道有任何事件或方法可以与创建过程挂钩。

    但是,我成功地做了这样的事情:

    import 'dart:async';
    
    inserted() {
      Timer.run(() {
        // Do your calculations here...
      });
    }
    

    如果您稍后设置 name 变量,那么您也可以使其可观察并在值更改后设置计时器:

    observe(() => name), (_) {
      Timer.run(() {
        // Recalculate...
      });
    });
    

    记得标记@observable并将监听器设置为created()

    【讨论】:

    • inserted() 对我没有帮助,因为该名称包含在另一个 WebComponent 中。但是触发修改确实对我有用。
    【解决方案2】:

    你真的应该在 CSS 中处理这样的事情:

    .name {
      width: 50px;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
    }
    

    并给你的 div 一个 name 的类。

    这会自动将文本缩小到容器宽度,并添加一个省略号以指示文本已被截断。

    【讨论】:

    • 我不知道文本溢出:省略号,非常感谢。不幸的是,这对我没有帮助,因为它在最后被截断。最后几个字符实际上是最有趣的......
    猜你喜欢
    • 2013-03-29
    • 2019-02-22
    • 2015-05-15
    • 2010-11-01
    • 2018-01-15
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    相关资源
    最近更新 更多