У меня возникла проблема с выполнением состояний в приложении angularjs. Я видел, что у многих была такая же проблема, но я не мог найти решение моей проблемы.
Мой app.js
'use strict';
var app = angular.module('app', ['ui.router', 'ngRoute', 'ngResource','testCtrl']);
app.config(['$stateProvider', '$urlRouterProvider', '$routeProvider', '$locationProvider','$httpProvider', function ($stateProvider, $urlRouteProvider, $routeProvider, $locationProvider,$httpProvider) {
$locationProvider.html5Mode(true);
$stateProvider
.state('app.registerPage', {
url: "/tp/AddQ",
views: {
'menuContent': {
templateUrl: "views/Registration_view.php",
controller: 'testCtrl'
}
}
});
$urlRouteProvider.otherwise('/AEAS/admin/');
}]);
мой контроллер
var app = angular.module('app', []).controller('testCtrl', ['$scope', '$http','$state', function ($scope, $http,$state) {
$scope.click = function(){
console.log("done");
$state.go('app.registerPage');
};
}]);
мой взгляд
<body>
<div class="container" ng-controller="testCtrl" ng-app="app">
<div class="row">
<form role="form" ng-submit="submit(data)">
<h1>Welcome to Heart attack predictor!</h1>
<div id="body">
<button><a href="" ng-click="click();">Edit</a></button>
</div>
</form>
</div>
</div>
</body>
<script src="<?php echo base_url(); ?>angularjs/angular.min.js"></script>
<script src="<?php echo base_url(); ?>angularjs/angular-resource.min.js"></script>
<script src="<?php echo base_url(); ?>angularjs/angular-route.js"></script>
<script src="<?php echo base_url(); ?>angularjs/angular-ui-router.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/Controllers/testCtrl.js"></script>
<script src="<?php echo base_url(); ?>assets/js/app.js"></script>
Это ошибка, которую я получаю
Failed to instantiate module app due to:
Error: [$injector:modulerr] http://errors.angularjs.org/1.5.3/$injector/modulerr?p0=t...)
at Error (native)
at http://localhost/Heart_Attack_Predictor/angularjs/angular.min.js:6:416
at http://localhost/Heart_Attack_Predictor/angularjs/angular.min.js:40:60
at q (http://localhost/Heart_Attack_Predictor/angularjs/angular.min.js:7:355)
at g (http://localhost/Heart_Attack_Predictor/angularjs/angular.min.js:39:135)
at http://localhost/Heart_Attack_Predictor/angularjs/angular.min.js:39:304
at q (http://localhost/Heart_Attack_Predictor/angularjs/angular.min.js:7:355)
at g (http://localhost/Heart_Attack_Predictor/angularjs/angular.min.js:39:135)
at eb (http://localhost/Heart_Attack_Predictor/angularjs/angular.min.js:43:164)
at c (http://localhost/Heart_Attack_Predictor/angularjs/angular.min.js:20:463
Во-первых, app.js
перед testCtrl.js
.
Затем в testCtrl.js
вы повторно объявляете app
переменной app
которое определено в app.js
Итак, измените на:
app.controller('testCtrl');
вместо
var app = angular.module('app', []).controller('testCtrl')