在 mithril.js 中动态设置属性
Setting an attribute dynamically in mithril.js
我想在 oninit
函数内的 mithril.js 中设置一个属性。例如,
m('img', {
oninit: (vnode) => {
vnode.attrs.src = 'A url string';
}
})
我想在设置此属性之前检查某些条件,我不想使用三元运算符,因为那样会变得混乱。上面的示例成功了一半,在记录 vnode
时,attrs
对象具有正确的 src
字符串,但是在 DOM 中,src
设置为 null
出于某种原因。
我正在寻找一个简单的解决方案,而不是像给元素一个 id
并使用它来更改属性。
对于任何寻求解决方案的人来说,这对我有用。
m('img', {
src: (() => {
return 'A url string';
})()
})
您可以在别处定义函数并调用它。
通常在使用闭包组件时,此类代码可以作为方法或函数放置在组件中。
这是在一个仅用于图像的组件中,但此类工作可以在直接呈现该 IMG 的父组件中完成。
function DynamicImg() {
function imageAttrs(vnode) {
let src = 'configurable';
return {src: src};
}
return {
view: function (vnode) {
return m('img', imageAttrs(vnode));
}
}
}
在 init 中设置 attr 不会持续,因为没有它会立即调用视图函数。因为它在每次渲染时都会被调用。
我想在 oninit
函数内的 mithril.js 中设置一个属性。例如,
m('img', {
oninit: (vnode) => {
vnode.attrs.src = 'A url string';
}
})
我想在设置此属性之前检查某些条件,我不想使用三元运算符,因为那样会变得混乱。上面的示例成功了一半,在记录 vnode
时,attrs
对象具有正确的 src
字符串,但是在 DOM 中,src
设置为 null
出于某种原因。
我正在寻找一个简单的解决方案,而不是像给元素一个 id
并使用它来更改属性。
对于任何寻求解决方案的人来说,这对我有用。
m('img', {
src: (() => {
return 'A url string';
})()
})
您可以在别处定义函数并调用它。
通常在使用闭包组件时,此类代码可以作为方法或函数放置在组件中。
这是在一个仅用于图像的组件中,但此类工作可以在直接呈现该 IMG 的父组件中完成。
function DynamicImg() {
function imageAttrs(vnode) {
let src = 'configurable';
return {src: src};
}
return {
view: function (vnode) {
return m('img', imageAttrs(vnode));
}
}
}
在 init 中设置 attr 不会持续,因为没有它会立即调用视图函数。因为它在每次渲染时都会被调用。