knockout.js Knockout JS -函数不是构造函数

bqucvtff  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(200)

我在下面的代码中得到了错误'TabsViewModel is not a constructor'。我看过其他关于这个错误的帖子,但是大多数都暗示函数名在其他地方被使用,但是正如你所看到的,这是一个非常简单的例子,TabsViewModel在其他地方没有被使用。

define(['utils','ko','text!tmpl/risersandfallerstabs_partial.html','text!tmpl/errorPage_partial.html'], function(utils,ko,tmplrisersandfallerstabsStr,tmplErrStr) {
let tabsmodel = {}; 
$(function() {           
    tabsmodel = new TabsViewModel();
    ko.components.register('risersandfallerstabs', {
        viewModel: utils.createVM(tabsmodel), 
        template: tmplrisersandfallerstabsStr                      
    });
    utils.applyBindings(tabsmodel,'risersandfallerstabs');

    var TabsViewModel = (function(){
        let self = {};
        self.test = "123";
        return self;
    });
});
})

为什么会出现此错误?

fjaof16o

fjaof16o1#

您尝试在TabsViewModel存在之前呼叫它。请将函式定义移至函式执行上方。

var TabsViewModel = (function() {
    let self = {};
    self.test = "123";
    return self;
  });

  tabsmodel = new TabsViewModel();
vx6bjr1n

vx6bjr1n2#

我遇到了一个类似的问题,问题是我的类是一个匿名函数,而不是一个普通函数。
不起作用:

var TabsViewModel = () => { ... }

工作时间:

var TabsViewModel = function() { ... }

相关问题