gpt4 book ai didi

Aurelia 自定义元素 : Access Parent method

转载 作者:行者123 更新时间:2023-12-04 00:30:12 25 4
gpt4 key购买 nike

我正在使用 Aurelia 的自定义元素来重复一组条目。以下是示例要点:https://gist.run/?id=38aee854447122f021bc05e1e0de25ae

现在,我需要访问 deleteEntry(entry)单击自定义元素中定义的按钮时的方法。我尝试使用 $parent.deleteEntry(entry)但它不起作用。

this问题,但它已有一年多的历史了,我想知道现在是否有更清洁的方法来实现这一目标。

最佳答案

为什么不使用 call绑定(bind)来完成这个?

这是一个例子:https://gist.run?id=3cc553ea3bd7ed1862d87d8dbe4f5f84

app.html

<template>
<require from="./entry"></require>

<h2 class='text-center'>Journal Entries</h2>

<div>
<entry repeat.for='entry of entries' entry.bind='entry' delete-function.call="deleteEntry(entry)"></entry>
</div>

</template>

app.js

export class App {

entries = [{
'date': 'Jan 1',
'note': 'Hello World'
}, {
'date': 'Jan 2',
'note': 'Good Morning'
}];


deleteEntry(entry) {
console.log("Deleting entry");
console.log(entry);

const index = this.entries.indexOf(entry);

this.entries.splice(index, 1);
}
}

entry.html

<template>
<div>${entry.date} <button click.trigger='delete()'>X</button></div>

<div>${entry.note}</div>

</template>

entry.js

import {bindable} from 'aurelia-framework';

export class EntryCustomElement {
@bindable entry;
@bindable deleteFunction;

delete() {
this.deleteFunction();
}

}

显然,在实际实现中,您需要确保绑定(bind)到 deleteFunction 的内容在尝试调用它之前实际上是一个函数。

关于Aurelia 自定义元素 : Access Parent method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41390793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com