2017-11-27 5 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