Я пытаюсь загрузить новое представление при нажатии кнопки в моем проекте angularjs. Я получаю эту ошибку. Как решить эту проблему? Поскольку я новичок в angularjs, я хочу, чтобы я правильно дал состояние в своем app.js
app.js
'use strict';
var app = angular.module('app', ['ui.compat', 'ui.router', '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/');
}]);
первый вид
<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-ui-router.js"></script>
<script src="<?php echo base_url(); ?>angularjs/angular-route.js"></script>
<script src="<?php echo base_url(); ?>assets/js/app.js"></script>
<script src="<?php echo base_url(); ?>assets/js/Controllers/testCtrl.js"></script>
второй вид
<body>
<div class="container" ng-controller="testCtrl" ng-app="app">
<div class="row">
<form role="form" ng-submit="submit(data)">
<h1>Welcome to Registration Page</h1>
<div id="body">
<button><a href="" ng-click="submit();">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-ui-router.js"></script>
<script src="<?php echo base_url(); ?>assets/js/app.js"></script>
<script src="<?php echo base_url(); ?>assets/js/Controllers/regCtrl.js"></script>
контроллер
angular.module('app', ['ui.router']).controller('testCtrl', ['$scope', '$state', function testCtrl($scope, $state) {
$scope.click = function () {
$state.go('app.registerPage');
};
}]);
ОШИБКА
angular.min.js:116 Error: Could not resolve 'app.registerPage' from state ''
at Object.transitionTo (angular-ui-router.js:3179)
at Object.go (angular-ui-router.js:3107)
at m.$scope.click (testCtrl.js:8)
at fn (eval at <anonymous> (angular.min.js:226), <anonymous>:4:206)
at b (angular.min.js:124)
at e (angular.min.js:268)
at m.$eval (angular.min.js:142)
at m.$apply (angular.min.js:143)
at HTMLAnchorElement.<anonymous> (angular.min.js:268)
at Pf (angular.min.js:36)
Вы создаете представление без гражданства, поэтому угловой не может "прыгать" с вашего вида на состояние app.registerPage
. Я думаю, вам нужно создать базовое (домашнее, индексное) состояние и указать его на первое представление.
.state('home',
{
url: "/",
templateUrl:'views/your_first_view.html',
controller: "testCtrl"
});
Кроме того, вам нужно удалить ng-controller="testCtrl"
из вашего первого div.