以两种方法声明视图模型



正在阅读淘汰Js教程,但无法做到这一点。在第一页上,使用第一种方法,在第二页上,使用第二种方法创建模型。但第二种方法行不通。可能是什么问题?

第一种方法

var AppViewModel {
    this.firstName = 'Bob',
    this.lastName = 'Smith'
};

第二种方法

function AppViewModel() {
    this.firstName = 'Bob';
    this.lastName = 'Smith';
}

HTML部分如下:

<body>
  <span data-bind="text: firstName"></span>

  <script type="text/javascript">
      ko.applyBindings(AppViewModel);
  </script>
</body>

这适用于第一种方法,但第二种方法会引发错误:

未捕获错误:无法分析绑定。消息: 引用错误: 未定义名字;绑定值:文本:名字

在第一种方法中,您定义了一个对象。在第二种方法中,您定义了一个类的构造函数,因此您必须使用 new 关键字创建该类的实例:

<body>
  <span data-bind="text: firstName"></span>
  <script type="text/javascript">
      ko.applyBindings(new AppViewModel());
  </script>
</body>

最新更新