亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何找到原因AngularJS“參數'MyCtrl'不是函數,未定義”

如何找到原因AngularJS“參數'MyCtrl'不是函數,未定義”

慕斯709654 2019-11-18 10:40:05
當AngularJS因錯誤“ Argument'MyCtrl'不是一個函數,未定義 ”而崩潰時,尋找原因可能有點挑戰。在這里我想做一個“檢查清單”,出現錯誤時應該檢查什么
查看完整描述

2 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

是否通過HTML連接了帶有“ MyCtrl”的文件?(檢查是否合并或丑化文件,請檢查兩次)

<script src='path/to/controllers.js'></script>

是否正確定義了“ MyCtrl”?

有幾種模式:


app.controller('MyCtrl', ['$scope', function ($scope) {...}])


app.controller('MyCtrl', function ($scope) {...})


var MyCtrl = function ($scope) {...})

在正確的模塊中定義了“ MyCtrl”嗎?

是否將“ MyCtrl's”模塊添加到應用程序依賴項中?

angular.module('app', ['app.sources']);

如果你定義模塊多時間,您應該按以下順序定義它:


首先定義應該像

angular.module('app.sources', []);

(帶有[ ])


隨后的定義應該像

angular.module('app.sources');

(無[ ])


重要提示:聲明順序很重要- [ ]首先應定義。


檢查模塊僅被定義一次。您可能忘記復制粘貼后重命名模塊。檢查src中的字符串,例如

angular.module('app.sources', []);

檢查您的 'ng-app'。最好只使用其中一個名稱,例如ng-app='app'(換句話說,不要定義多個未命名的ngApp指令)


您的AngularJS版本的控制器語法正確嗎?


(Angular 1.0.x和1.2.x及更高版本中的定義有所不同。當Angular版本大于1.3.x時,您不能聲明全局構造函數并與ng-controller一起使用)


查看完整回答
反對 回復 2019-11-18
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

如果您使用ng-controllerwith和“ controller as”語法,請確保檢查控制器的名稱是否正確。


我的情況:


//controller register    

angular.module("myApp").controller("someController", SomeController)


//in my code

<div ng-controller="SomeController as vm"></div>

注意我用過的ng-controller="SomeController as vm",哪里SomeController有大寫字母S。它應該是小寫字母,s因為這就是我注冊的方式。


因此,請檢查您的控制器名稱是否正確。


查看完整回答
反對 回復 2019-11-18
  • 2 回答
  • 0 關注
  • 804 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號