未捕获错误:[$ injector:modulerr]无法实例化模块 myApp由于:错误:[$ injector:nomod]模块' myApp'不是 可以!您要么错误拼写了模块名称,要么忘记加载它。 如果注册模块,请确保将依赖项指定为 第二个论点。
美好的一天,在我提出这个问题之前,我查看了这个问题的所有先前的答案,并通过了文档,不幸的是,没有帮助我,这就是我要问的原因。
这就是我使用角度和控制器的方式:
html文件:
<!DOCTYPE html>
<html>
<head>
</head>
<body ng-app="myApp">
<div ng-controller="login.controller">
<input ng-model="foodDescription">
<button ng-click="onSomethingChanged(foodDescription)">Do Something</button>
<h1>The Food is {{viewModel.foodDescription}}</h1>
</div>
<script type='text/javascript' src="./node_modules/angular/angular.js"></script>
<script type='text/javascript' src="./module.js"></script>
</body>
</html>
模块文件:
import angular = require('angular');
import loginControllerImport = require('./Views/login/login.Controller');
var app: angular.IModule = angular.module("myApp", []);
app.controller(loginControllerImport.name, loginControllerImport.loginController);
loginControllerImport.loginController.$inject = ['$scope'];
export = app;
控制器文件:
import angular = require('angular');
import loginViewModelImport = require('./login.viewModel');
export interface ILoginControllerScope extends angular.IScope {
viewModel: ILoginViewModel;
onSomethingChanged: (myFood: string) => void;
}
export class loginController {
constructor(private $scope: ILoginControllerScope) {
this.$scope.viewModel = new loginViewModelImport.loginViewModel();
this.$scope.onSomethingChanged = this.onSomethingChanged.bind(this);
}
private onSomethingChanged(myFood: string) {
this.$scope.viewModel.foodDescription = myFood;
}
}
export var name: string = "login.controller";
查看模型文件:
export class loginViewModel implements ILoginViewModel {
private _foodDescription: string;
get foodDescription(): string {
return this._foodDescription;
}
set foodDescription(value: string) {
this._foodDescription = value;
}
}
那么出现这个错误会出现什么问题?为什么会出现?我该怎么解决?我将来如何避免它?
非常感谢。
答案 0 :(得分:0)
由于您使用require()来加载依赖项,您还应该a)将它们捆绑到一个输出文件中,b)手动加载它们或c)使用像RequireJS这样的库加载它们。我无法验证module.js是否是您的捆绑文件,否则此代码将不会成功。
如果我自己会遇到这个问题,我会将应用程序剥离到最低限度(只需加载myApp模块本身)并使其正常工作。启动此操作后,添加视图模型和控制器(提示:逐个)。