Jinja2过滤器:提取MQTT主题名称的一部分的更好或更有效的方法?

时间:2019-03-03 00:57:30

标签: jinja2

我是Jinja2的新手,将它与家庭自动化系统Home Assistant结合使用。我无法在谷歌搜索中找到问题的答案,也无法在我签出的各种Jinja2教程中找到答案。

我想提取MQTT主题名称的一部分,例如light_status_office / tele_ls / LWT或light_status_kitchen / tele_ls / LWT。我想获取light_status_之后和/ tele_ls / LWT之前的部分,例如办公室或厨房。

到目前为止,我正在按照以下方式进行操作,其中topic3 =办公室。

Widget build(BuildContext context) {
return new Card(
  //elevation: 8.0,
  margin: new EdgeInsets.symmetric(horizontal: 10.0, vertical: 10.0),
  child: Container(
    decoration: new BoxDecoration(
      color: Colors.white,
      borderRadius: new BorderRadius.circular(25.0)
    ),
    child: ListTile(
      contentPadding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0),
      leading: Container(
        padding: EdgeInsets.only(right: 12.0),
        decoration: new BoxDecoration(
          border: new Border(
            right: new BorderSide(width: 1.0, color: Colors.white54)
          )
        ),
        child: notchecked,
      ),
      title: Text(
        statusCard.timeStampString,
        style: Theme.TextStyles.buttonText,
      ),
      subtitle: Text(
        statusCard.text,
        style: Theme.TextStyles.contentCardText,
      ),
      trailing: delete,
    ),
  ),
);

是否拆分了最适合此用途的过滤器?例如,可以将拆分嵌套,这样就不需要topic3了吗?

总体而言,有没有更好的方法可以实现目标?

非常感谢! 罗恩

0 个答案:

没有答案