テンプレートリテラルを使用しているhtmlテンプレートがあります。関数は以下のようになりますテンプレートリテラルにHTMLボタン「onclick」を設定する
// postCreator.js
export const blogPostMaker = ({ title, content, address, id }, deletePost) => {
const innerHtml = `
<blog-post>
<h1 class='title'>${title}</h1>
<p class='content'>${content}</p>
<p class='address'>${address}</p>
<button onclick='${() => deletePost(id)}'>Delete</button>
</blog-post>
`
return innerHtml
}
//Blog.js
postHelper.getSeriesOfPosts(10)
.then(resp => {
resp.forEach(post => (blogDiv.innerHTML += blogPostMaker(post, postHelper.deletePost)))
})
私が理解できないことは、onclickを動作させる方法です。私はBlog.js
のanon関数をに渡してみました。
アイデア?あなたは、グローバルイベントコールバックを公開したくない場合は
あなたは 'を削除<ボタンのonclick = "postHelper.deletePost($ {ID}を)">'試してみましたか? – Supersharp
'postHelper'オブジェクトをグローバルに公開しても動作しますが、私はそれをやりたいとは思いません。私は、HTMLがインラインJSをどのように処理するかについての私の読書に基づいてグローバルを公開しない限り、私がしようとしていることは可能ではないと考えています。 –