Javascript 在苗条动作上传递多个参数
根据Svelte文件: 动作是在创建元素时调用的函数。它们可以返回一个带有destroy方法的对象,该方法在元素卸载后调用 我想将多个参数传递给一个纤细的动作函数,但只有最后一个参数被重新编码Javascript 在苗条动作上传递多个参数,javascript,svelte,Javascript,Svelte,根据Svelte文件: 动作是在创建元素时调用的函数。它们可以返回一个带有destroy方法的对象,该方法在元素卸载后调用 我想将多个参数传递给一个纤细的动作函数,但只有最后一个参数被重新编码 功能示例(节点、arg1、arg2){ //该节点已装入DOM中 log(arg1,arg2)//应该显示'ab',但实际上只显示'b undefined' 返回{ 销毁{ //该节点已从DOM中删除 } } } 你好,世界! 是否有任何可行的解决方案可以避免使用单个对象作为参数 <scrip
功能示例(节点、arg1、arg2){
//该节点已装入DOM中
log(arg1,arg2)//应该显示'ab',但实际上只显示'b undefined'
返回{
销毁{
//该节点已从DOM中删除
}
}
}
你好,世界!
是否有任何可行的解决方案可以避免使用单个对象作为参数
<script>
function example(node, arg) {
// the node has been mounted in the DOM
console.log(arg) // Returns a object with the arguments
return {
destroy() {
// the node has been removed from the DOM
}
}
}
</script>
<h1 use:example>Hello World!</div>
<!-- Passing parameters -->
<h1 use:example={{
arg1: [50, 75, 100],
arg2: true
}}>Works like a charm!</h1>
函数示例(节点,参数){
//该节点已装入DOM中
log(arg)//返回带有参数的对象
返回{
销毁{
//该节点已从DOM中删除
}
}
}
你好,世界!
工作起来很有魅力!
您还可以使用数组
下面是我的代码片段:
export function initMapDesc(mapMark) {
// make the entry (obj) and the composed search regex reactive
return (node, [obj, pRex]) => {
// the node has been mounted in the DOM
node.innerHTML = mapObj(node, obj, pRex, mapMark);
return {
update([obj, pRex]) {
node.innerHTML = mapObj(node, obj, pRex, mapMark);
},
// destroy the node to clear the view (on session change)
destroy() {
node.innerHTML = '';
}
};
};
};
此代码将对象呈现到表
节点中。正则表达式流用于搜索节点和标记搜索结果
下面的代码显示了use函数的调用。闭包用于将对象传递给use函数并接收regex搜索结果
const mapMark = { // mapMark Obj
markedIds: [], // marked result row ids
skipProps: ['kind', 'method', 'type', 'bic']
};
const mapper = initMapDesc(mapMark);
在HTML中:
<td id="{key}" class="space-normal" use:mapper={[$norm.map[key], $pseudoRex]}></td>
我已经提交了一个允许在use指令中使用对象和类方法的脚本。在
{}
之间的内容可以是任何JavaScript表达式,当您编写'a','b'
时,您正在使用,因此整个表达式的值将是'b'
您可以改用数组
示例()
函数示例(节点[arg1,arg2]){
console.log(arg1、arg2)
返回{
销毁{
//该节点已从DOM中删除
}
}
}
你好,世界!
<td id="{key}" class="space-normal" use:mapper={[$norm.map[key], $pseudoRex]}></td>