Javascript ';ShouldWorkController';这不是一个函数。没有定义
当我尝试使用angular ui router$stateProvider将控制器绑定到模板时,遇到以下错误:Javascript ';ShouldWorkController';这不是一个函数。没有定义,javascript,angularjs,typescript,angular-ui-router,Javascript,Angularjs,Typescript,Angular Ui Router,当我尝试使用angular ui router$stateProvider将控制器绑定到模板时,遇到以下错误: 'ShouldWorkController' is not a function. Got undefined. 但是,当我使用ng controller在模板中声明控制器时,一切都正常。这里可能出了什么问题 app.ts shouldWorkController.ts ShouldWork.html ^---这个很好用 该消息意味着该控制器“应工作控制器”未加载到主角度模块中。请
'ShouldWorkController' is not a function. Got undefined.
但是,当我使用ng controller在模板中声明控制器时,一切都正常。这里可能出了什么问题
app.ts
shouldWorkController.ts
ShouldWork.html
^---这个很好用
该消息意味着该控制器“应工作控制器”
未加载到主角度模块中。请确保在结束时调用注册表:
module App.MyControllers {
...
class ShouldWorkController implements IShouldWorkViewModel {}
}
// we have to register this controller into some module (MyControllers)
// which is also referenced in the main app module
angular.module('MyControllers')
.controller('ShouldWorkController', App.MyControllers.ShouldWorkController );
我意识到这是老生常谈,但我是通过谷歌带着同样的问题来到这里的,不是第一次。要检查的内容包括:
ShouldWorkController
类的Export
语句。这可能不是你的问题,但你应该检查一下。我可以通过从控制器类中删除export语句来重现此错误//
)添加到包含引用的任何类型的typescript文件中我正在使用grunt tsng,它可以在构建时自动注册控制器等,也可以正常工作(否则模板中的控制器声明将无法正常工作)。消息很清楚-
angular.module('app',[…])
无法访问您的控制器。这就是信息。因此,通过grunt注册的东西无法正常工作。主模块没有注册此名称。这有帮助吗?我理解你的意思,这对我来说毫无意义,因为这里需要的一切都在那里(并且使用“ng controller”绑定控制器工作得非常好)。从生成的js代码中摘录:(函数(App){function(MyControllers){var ShouldWorkController=(函数()…
和更高版本的angular.module(“App.MyControllers”).controller(“ShouldWorkController,
现在的重点是:我真的会怀疑:模块应用程序缺少该控制器模块。请检查两次,确保您看到angular.module(“app”,[“app.MyControllers”,…]))
。这就是95%的原因。剩下的5%是控制器生成的文件没有嵌入到页面中。我几乎可以肯定。。。
module App.MyControllers {
interface IShouldWorkViewModel {
}
class ShouldWorkController implements IShouldWorkViewModel {}
}
<div ng-controller="ShouldWorkController as viewModel" us-spinner spinner-key="spinner-1">
^ --- this works nicely
module App.MyControllers {
...
class ShouldWorkController implements IShouldWorkViewModel {}
}
// we have to register this controller into some module (MyControllers)
// which is also referenced in the main app module
angular.module('MyControllers')
.controller('ShouldWorkController', App.MyControllers.ShouldWorkController );