2017-11-27 17 views
2

次のコードで 'TabsViewModel is not a constructor'というエラーが表示されます。私はこのエラーに関する他の記事を見てきましたが、ほとんどの場合、関数名は他の場所で使用されていることが示唆されていますが、これは非常に単純な例であり、TabsViewModelは他の場所では使用されていません。ノックアウトJS - 関数がコンストラクタではありません

 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; 
 
    }); 
 
}); 
 
})

なぜ私はこのエラーを取得していますか?

答えて

1

あなたはTabsViewModelが存在する前にそれを呼び出そうとしています。関数定義を関数実行の上に移動します。

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

    tabsmodel = new TabsViewModel(); 
+0

それでは、感謝! – ChrisMurray

関連する問題