GraphObject.make 需要 class 函数或 GoJS class 对象生成器的名称或名称,而不是:未定义

GraphObject.make requires a class function or GoJS class name or name of an object builder, not: undefined

我正在学习库的教程 go.js:https://www.youtube.com/watch?v=EyseUD_i6Dw&list=PLOiCuGu6tcUSvKsqFnemvGTfdT97wVLsX&index=3

我毫无问题地达到了这一点,但此时我收到了这个错误:

GraphObject.make requires a class function or GoJS class name or name of an object builder, not: undefined

这是我的代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Test</title>

    <script src="https://unpkg.com/gojs@2.2.5/release/go.js"></script>
    <script>
        function init() {
            var $ = go.GraphObject.make;
            myDiagram = $(go.Diagram, "myDiagramDiv");
            myDiagram.add(
                $(go.Part, "Position",
                    $(go.Shape, "RoundedRectangle", {fill: "white"}),
                    $(go.textBlock, "some text")
                )
            );
            
        }
    </script>
</head> 
<body onload="init()">
    <div id="myDiagramDiv" style="height: 400px; width: 400px; border: 1px solid black;"></div>
    
</body>
</html>

有谁知道问题出在哪里?也许是某些版本问题?我试过不同版本的 go.js,但我总是遇到同样的问题。

你拼错了go.TextBlock(你写了go.textBlock

顺便说一句,在 2.2(在制作这些视频后发布)中,GoJS 有一种新的构建对象的方法,如下所示:

function init() {
  myDiagram = new go.Diagram("myDiagramDiv");
  myDiagram.add(
    new go.Part("Position")
      .add(new go.Shape("RoundedRectangle", {fill: "white"}))
      .add(new go.TextBlock("some text"))
  );
}

这种像new go.Part().add(someObject).add(anotherObject)这样的方法链接可以让你写出像GraphObject.make一样简洁的代码,但错误更明显。对于您的错字,您会看到:

Uncaught TypeError: go.textBlock is not a constructor

它会指出具体的行:

Ro 阅读更多有关方法链而不是使用 GraphObject.make 的信息,请参阅: https://gojs.net/latest/changelog.html

https://gojs.net/latest/intro/buildingObjects.html