Ethereum 坚固性-“;未捕获类型错误:无法读取属性';合同';“未定义”的定义;

Ethereum 坚固性-“;未捕获类型错误:无法读取属性';合同';“未定义”的定义;,ethereum,solidity,Ethereum,Solidity,我对IDE和以太坊的混合有些陌生(具体来说是固态),我有一个天真的问题。我的网页中的javascript代码是如何与合同代码“绑定”的?我编写了一个简单的网页,其中包含一个值,但是javascript似乎无法将该值传递给实际的契约。准确的错误行是: var result = contracts["MyFirstContract"].contract.reportUser("foo"); 我得到的确切错误组合是: “未捕获的TypeError:无法读取未定义的属性'contract'。” 因此,

我对IDE和以太坊的混合有些陌生(具体来说是固态),我有一个天真的问题。我的网页中的javascript代码是如何与合同代码“绑定”的?我编写了一个简单的网页,其中包含一个值,但是javascript似乎无法将该值传递给实际的契约。准确的错误行是:

var result = contracts["MyFirstContract"].contract.reportUser("foo");
我得到的确切错误组合是:

“未捕获的TypeError:无法读取未定义的属性'contract'。”

因此,它显然认为合同[“我的第一份合同”]为零


但是,MyFirstContract.sol文件存在!javascript如何知道我所说的合同文件?它似乎没有出现在文档中,尽管我可能遗漏了一些东西

我发现了问题所在。javascript代码似乎不能直接访问.col文件。它直接从区块链获取合同代码,而不是实际的.col文件。因此,您必须编译合同并将其上传到区块链,然后您的javascript才能看到它

您必须将交易添加到测试区块链。在混合IDE中,您必须按下“右视图”窗格中可用的“添加事务”按钮(F7调出“右视图”窗格)。对话框打开后,按“创建合同”单选按钮,从下拉菜单中选择刚创建的合同。按OK,Mix将创建一个包含合同代码的交易。然后试试你的javascript,它应该可以工作