在将新控制器和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>
答案 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'之前应修复此错误。