【问题标题】:Why am I getting 'Error: $injector:modulerr Module Error' in this basic Controller?为什么我在这个基本控制器中收到“错误:$injector:modulerr 模块错误”?
【发布时间】:2015-06-24 19:26:03
【问题描述】:

使用AngularJS 1.3.15

jsFiddle:http://jsfiddle.net/leongaban/2g8vwmzo/

未能实例化模块 myApp 由于: 错误:[$injector:nomod] http://errors.angularjs.org/1.3.15/$injector/nomod?p0=myApp 在错误(本机) 在https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js:6:417

(function() {
'use strict';
var app = angular
    .module('myApp', ['MyCtrl'])
    .controller('MyCtrl', Controller);
Controller.$inject = ['$scope'];

function Controller($scope) {
    var vm = this;
    var vs = $scope;

    activate();

    ////////////////////////////////////////////////////////////////

    function activate() {
        vs.name = "stackoverflow";

        vs.fonts = [
            {title: "Arial" , text: 'Arial rules!' },
            {title: "Helvetica" , text: 'Helvetica is hot!' }
        ];

        vs.change= function(option){
            alert(option.title);
        }
    }
}
})();

标记:

<div ng-app="myApp" ng-controller="MyCtrl">

    <h1>{{name}}</h1>

    <select ng-model="opt"
            ng-change="change(font)">

        <option ng-repeat="font in fonts" value="{{font.title}}">
            {{font.title}}
        </option>

    </select>

    <p>{{opt}}</p>
</div>

【问题讨论】:

  • 可能是因为你在 activate() 定义之前触发了它
  • 在这种情况下无论如何都不会将函数提升到顶部,但在没有激活函数的情况下也尝试过,但仍然遇到$injector:modulerr

标签: javascript angularjs angularjs-controller


【解决方案1】:

改变这个

.module('myApp', ['MyCtrl'])

.module('myApp', [])

你很高兴!

module函数中的第二个参数是一个模块依赖数组,即myApp模块所依赖的其他模块。 MyCtrl 是控制器而不是模块。

更新:更改小提琴设置。将第二个下拉列表设置为no wrap in body

在这里运行http://jsfiddle.net/0h4cs2tp/

【讨论】:

  • 嗯,刚刚试了jsfiddle.net/leongaban/2g8vwmzo/12 仍然得到那个错误:(
  • 还有一个问题。
  • 扩展no wrap 问题。您正在onload 中运行您的代码,因此您的myApp 模块将在 Angular 引导您的应用程序之后定义。即尝试使用它。您通常应该将代码放在脚本标签中,而不是任何页面事件中,以避免这种情况。如果您确实需要稍后运行它,请删除ng-app 属性和bootstrap it manually
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-01
  • 1970-01-01
  • 2017-01-20
  • 2017-12-21
  • 1970-01-01
相关资源
最近更新 更多