Javascript &引用;smartContract.at不是一个函数;在Angular应用程序中

Javascript &引用;smartContract.at不是一个函数;在Angular应用程序中,javascript,angular,ethereum,web3,web3js,Javascript,Angular,Ethereum,Web3,Web3js,在我的Angular Dapp中,第一个代码中的错误是“smartContract.at不是函数” 但是如果我这样写代码: settingMap(hashRoot : string) { var smartContract = new window.web3.eth.Contract([contractAbi],contractAddress) var owner = smartContract.owner console.log(owner) console.log打印未定义。 我如何解决

在我的Angular Dapp中,第一个代码中的错误是“smartContract.at不是函数”

但是如果我这样写代码:

 settingMap(hashRoot : string) {
var smartContract = new window.web3.eth.Contract([contractAbi],contractAddress)
var owner = smartContract.owner
console.log(owner)
console.log打印未定义。 我如何解决这个问题?我尝试了很多方法,甚至改变了代码行

"var smartContract = window.web3.eth.contract([contractAbi])"


如果您使用的是
web3
version
1.x.x
,则合同实例的机制会发生如下更改:

var smartContract = new web3.eth.Contract(contractAbi, contractAddress);
await smartContract.methods.owner().call();
如果不需要挖掘公共方法/变量,则可以调用它们,如下所示:

var smartContract = new web3.eth.Contract(contractAbi, contractAddress);
await smartContract.methods.owner().call();