未捕获错误:[$ injector:modulerr]由于以下原因无法实例化模块匹配点:

时间:2016-06-04 06:05:57

标签: javascript angularjs

在将新控制器和html页面添加到我现有的离子角应用程序后尝试运行离子应用程序时,我收到以下错误消息。我现在已经调试了几个小时而且卡住了。

  

ionic.bundle.js:8895未捕获错误:[$ injector:modulerr]失败   实例化模块匹配点由于:错误:[$ injector:modulerr]   由于以下原因无法实例化模块settings.controller:错误:   [$ injector:nomod]模块' settings.controller'不可用!您   要么错误拼写模块名称,要么忘记加载它。如果注册   模块确保您将依赖项指定为第二个   参数。

我已确保添加' settings.controller'作为app.js文件中我的模块定义的依赖。

app.js文件

(function() {

    var matchpoint = angular.module('matchpoint', [
        'ionic','ionic.service.core',

        // Dashboard
        'dash.controller',

        // Authentication - Registration / Login
        'auth.controller',
        'auth.service',

        // Matches
        'match.controller',

        // Friends and Groups
        'friends.controller',
        'friends.service',
        'groups.service',

        // Communication
        'chat.controller',
        'chat.service',
        'email.service',

    // Settings
    'settings.controller',
...

settings.controller.js文件

(function() {

  var app = angular.module('settings.controller', []);

  app.controller('SettingsController', ['$scope', 'authService', 'jsonService', 'config', 'utilityService', '$state', '$localStorage', 'friendsService', '$ionicPopup', 'mixpanelService', function($scope, authService, jsonService, config, utilityService, $state, $localStorage, friendsService, $ionicPopup, mixpanelService) {

  }]);

});

settings.html

<ion-view view-title="Settings" class="settings-view">

  <ion-nav-bar class="bar-dark">
    <ion-nav-back-button>
    </ion-nav-back-button>
  </ion-nav-bar>

  <ion-content>
    <div class="list">
      <label class="item item-input item-stacked-label">
        <span class="input-label">{{ passwordLabel }}</span>
        <input type="password" placeholder="{{ passwordPlaceholder }}" ng-model="user.oldPassword">
      </label>
      <label class="item item-input item-stacked-label">
        <span class="input-label">New Password</span>
        <input type="password" placeholder="Your new password" ng-model="user.newPassword">
      </label>
    </div>
    <div class="padding">
      <button class="button button-block button-positive" ng-click="done()">
        Done
      </button>
      <div class="error" ng-if="errorMessage" ng-bind="errorMessage">
      </div>
      <div class="error password-strength-error" ng-if="!passwordValid">
        Password must:
        <ul>
          <li>have at least 1 uppercase letter</li>
          <li>have at least 1 lowercase letter</li>
          <li>have at least 1 digit</li>
          <li>be at least 8 characters long</li>
        </ul>
      </div>
      <br><br><br>
      <button class="button button-stable button-block" ng-if="!isFirstPasswordChange"
              ui-sref="app.dashboard">
        Cancel
      </button>
    </div>
  </ion-content>
</ion-view>

3 个答案:

答案 0 :(得分:1)

我不完全确定我是否应将其放在评论或答案中,但是:

如果您使用ionic serve命令运行离子应用程序,则很可能会遇到缓存问题。我遇到了一个非常类似的问题。 index.html文件缓存在您的浏览器中,我猜测您在索引中添加了对settings.controller.js文件的引用。尝试清除缓存。

答案 1 :(得分:0)

问题似乎与此

有关
console.log(this.myForm.controls.Contacts.controls.Phone1.controls);

angular.module是一个创建,注册和检索的全局场所所以这个应该填充值var app = angular.module('settings.controller', []);

ng-app

答案 2 :(得分:0)

您的模块'matchpoint'取决于'settings.controller',但是当您初始化(设置)模块'matchpoint'时它没有定义。确保在定义主应用程序之前运行用于定义'settings.controller'的代码:'matchpoint'

将'settings.controller.js'放在参考列表中的'app.js'之前应修复此错误。