我是 AngularJS 的新手,并且通过一些文档和教程来学习。我的问题是关于 Egghead 的视频系列,特别是这个视频,它演示了如何组合一个基本的搜索过滤器。我想在一个真正的应用程序中使用它,我正在为一个拥有小型蜡烛制作业务的朋友构建,但是当我将它修改为她的蜡烛而不是复仇者联盟演员时(如视频中演示的那样)我收到了这个错误:
未捕获的错误:[$injector:modulerr] 无法实例化模块 myApp,原因如下:
错误:[$injector:nomod] 模块“myApp”不可用!您要么拼错了模块名称,要么忘记加载它。如果注册一个模块,请确保您指定...
我将视频演示中的内容的编辑(数组中只有 3 个演员)版本复制到 jsfiddle 中,发现它仍然产生相同的错误。(作为参考,Egghead 演示在这里:http ://www.thinkster.io/angularjs/ET1iee6rnm/angularjs-ngfilter )。到目前为止,我已经在这个网站上阅读了至少六个类似的问题,并尝试了所有提供的解决方案,但他们都没有摆脱这个错误或导致复仇者联盟搜索——在视频演示中运行良好——实际运行适当地。
HTML:
<div ng-app="myApp">
<div ng-controller="AvengersCtrl">
<input type="text" ng-model="search.$" />
<table>
<tr ng-repeat="actor in avengers.cast | filter:search">
<td>{{actor.name}}</td>
<td>{{actor.character}}</td>
</tr>
</table>
</div>
</div>
Javascript:
var myApp = angular.module('myApp', []);
myApp.factory('Avengers', function () {
var Avengers = {};
Avengers.cast = [
{
name: "Robert Downey Jr.",
character: "Tony Stark / Iron Man"
},
{
name: "Chris Evans",
character: "Steve Rogers / Captain America"
},
{
name: "Mark Buffalo",
character: "Bruce Banner / The Hulk"
}
];
return Avengers;
})
function AvengersCtrl($scope, Avengers) {
$scope.avengers = Avengers;
}
简而言之,有人可以提供一个可行的解决方案并消除此错误,并用简单的英语(不是博士级别的“Angular Obscurese”)解释是什么原因导致它(简而言之)以及需要什么做了避免吗?
编辑:抱歉,但是上面从教程中引用的 jsfiddle 链接不再有效。我已删除损坏的链接。提到的教程仍然可以查看。