2016-10-05 40 views
0

所以我一直在使用這樣的命名功能,我的項目:命名命名功能的角度控制器

angular 
    .module('meanhotel') 
    .controller('HotelsController', HotelsControllerFn) 

//HotelsControllerFn.$inject = [''] 

function HotelsControllerFn(){ 
    var vm = this; 
    vm.title = 'MEAN Hotel App'; 
} 

但像

angular.js:68 Uncaught Error: [$injector:modulerr] Failed to instantiate module meanhotel due to: 
ReferenceError: HotelsController is not defined 

這迫使突然,我發現了錯誤我重命名我的功能相同的控制器,(然後一切正常)。

angular 
    .module('meanhotel') 
    .controller('HotelsController', HotelsController) 

//HotelsController.$inject = [''] 

function HotelsController(){ 
    var vm = this; 
    vm.title = 'MEAN Hotel App'; 
} 

對此有何看法?我想我可以命名任何我想要的功能...

+0

您使用一飲而盡或咕嚕開始working.angular .module( 'meanhotel',[]) .controller( 'HotelsController',HotelsControllerFn)作爲構建工具? – charlietfl

+0

在過去的項目中,我是。這個項目直接從index.html鏈接到JavaScript文件。所以這就是差異! – dwilbank

+0

其實我以爲他們是問題的原因......不明白爲什麼它會有所作爲,否則只要命名函數匹配參考參數 – charlietfl

回答

1

當你做angular.module沒有[]參數你檢索了一個現有的模塊。在您的代碼中,您可以引用名爲HotelsController的函數。由於模塊無法追蹤它,它必須拋出一個錯誤。

如果你改變你的參考,或創建模塊,這樣就應該

+0

在另一個文件中(我配置路線)我使用[]括號設置角度模塊。所以在這個文件中,我絕對試圖引用相同的模塊。問題是,它似乎沒有引用它,除非我以某種方式命名我的函數。 – dwilbank

+1

我認爲在你的模塊中你有參考你正在嘗試重命名的功能。由於它不創建一個單獨的模塊,因此期望您定義該功能。如果完整的代碼可用,我可能會進一步評論。 –

+0

這是正確的,我終於找到它發生的地方。謝謝先生! – dwilbank