首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mithril.js中动态设置属性

在mithril.js中动态设置属性
EN

Stack Overflow用户
提问于 2021-07-22 22:10:29
回答 2查看 57关注 0票数 0

我想在oninit函数中的mithril.js中设置一个属性。例如,

代码语言:javascript
复制
m('img', {
    oninit: (vnode) => {
        vnode.attrs.src = 'A url string';
    }
})

我想在设置这个属性之前检查某些条件,我不想使用三元运算符,因为那样会变得很混乱。上面的例子起到了一半的作用,在记录vnode时,attrs对象有正确的src字符串,但是在DOM中,由于某种原因,src被设置为null

我正在寻找一个简单的解决方案,而不是给元素一个id,然后用它来改变属性。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-23 02:05:36

通常,当使用闭包组件时,这样的代码可以作为方法或函数放在组件中。

这是在仅用于图像的组件中,但此类工作可以在直接呈现该IMG的父组件中完成。

代码语言:javascript
复制
function DynamicImg() {
  function imageAttrs(vnode) {
    let src = 'configurable';
    return {src: src};
  }
  return {
    view: function (vnode) {
        return m('img', imageAttrs(vnode));
    }
  }
}

在init中设置attr不会持续很久,因为在没有它的情况下视图函数将被立即调用。因为它在每次渲染时都被调用。

票数 1
EN

Stack Overflow用户

发布于 2021-07-22 22:41:36

对于任何正在寻找解决方案的人来说,这对我很有效。

代码语言:javascript
复制
m('img', {
    src: (() => {
        return 'A url string';
    })()
})

您可以在其他地方定义该函数,也可以调用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68486346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档