Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有HTML的TS文件中的JS函数存在问题_Javascript_Html_Typescript - Fatal编程技术网

Javascript 带有HTML的TS文件中的JS函数存在问题

Javascript 带有HTML的TS文件中的JS函数存在问题,javascript,html,typescript,Javascript,Html,Typescript,我正在构建简单的sharepoint Web部件,但在使用来自其他模块文件的主文件中的函数时遇到问题 文件JSFunctions.module.js(创建函数的文件)的一部分: 文件TestWebpartWebPart.ts的一部分(包含我的Web部件主体的主文件): 从“/JSFunctions.module.js”导入{getApi}; this.doElement.innerHTML=` `; html代码一切正常,但我在onClick=${getApi()}方面有问题 当我键入on

我正在构建简单的sharepoint Web部件,但在使用来自其他模块文件的主文件中的函数时遇到问题

文件JSFunctions.module.js(创建函数的文件)的一部分:

文件TestWebpartWebPart.ts的一部分(包含我的Web部件主体的主文件):

从“/JSFunctions.module.js”导入{getApi};
this.doElement.innerHTML=`




`;
html代码一切正常,但我在onClick=${getApi()}方面有问题

当我键入onClick${getApi()}时,页面上出现错误:“对象(…)os不是函数”

当我键入onClick${getApi}时,页面上没有错误,但在单击按钮后,什么也没有发生,当我检查页面上的代码时,可以看到onClick=“undefined”


为了简单起见,当我在JSFunctions.module.js文件中尝试“export function getApi(){}”时也会发生同样的情况,比如说
getApi
返回
“some_result”
。您的html将编译为
onClick=some\u结果
。这不是有效的html,也不会像您期望的那样工作

您试图做的是在单击按钮时调用
getApi
。这最好是通过以下方式实现的:

//在全局范围中定义getApi,以便在DOM中引用它
window.getApi=getApi;
//在dom中引用它
this.domElement.innetHTML=``

不要使用内联
onclick
属性。将事件侦听器附加到按钮

this.domElement.innerHTML = `
    <input type="text" id="userEmailInput"><br><br>
    <input type="Button" value="Przycisk"><br><br>
    <div id="html_BirthdayTable"></div>
`;

document.querySelector('button[value="Przycisk"]').addEventListener("click", getApi);
this.doElement.innerHTML=`




`; document.querySelector('button[value=“Przycisk”]”)。addEventListener(“单击”,获取API);
my
getApi
函数通过
document.getElementById('html\u BirthdayTable')返回数据。innerHTML=html\u BirthdayTable
在你的方法中,我不明白我应该把
window.getApi=getApi
放在哪里,所以我需要把
document.querySelector('button[value=“Przycisk”]”)放在哪里
?它看起来应该在JSFunctions.module.js文件中,但是如何链接这两个文件呢。我知道在普通的html站点中,我可以键入
,但我不知道在sharepoint Web部件项目中的何处使用它,我对sharepoint一无所知。只需复制/粘贴此代码。它在HTML中创建按钮,然后将事件侦听器附加到iThanks以获取帮助:)它最终对我有效,我的问题是,你的解决方案不小心将
document.querySelector…
放在
this.domeElement.innerHTML
之前,所以这在第一次尝试时不起作用,现在我将我的函数和我的html codeNice放在文件中,如果我的解决方案起作用,请不要忘记将其标记为已接受:)
import { getApi } from './JSFunctions.module.js';

this.domElement.innerHTML = `
<input type="text" id="userEmailInput"><br><br>
<input type="Button" Value="Przycisk" onClick=${getApi()}><br><br>
<div id="html_BirthdayTable"></div>
  `;
this.domElement.innerHTML = `
    <input type="text" id="userEmailInput"><br><br>
    <input type="Button" value="Przycisk"><br><br>
    <div id="html_BirthdayTable"></div>
`;

document.querySelector('button[value="Przycisk"]').addEventListener("click", getApi);