#javascript #asp.net #.net #angularjs
#javascript #asp.net #.net #angularjs
Вопрос:
Я пытаюсь кое-что изучить.Net Core и AngularJS итак, я делаю учебные пособия, и я остановился на этом:
http://stephenwalther.com/archive/2015/01/16/asp-net-5-and-angularjs-part-3-adding-client-routing Когда я делаю то же самое в новейшей версии .Net Core с конфигурацией по умолчанию, я получаю ошибку AngularJS: ошибка модуля $injector:modulerr
Я создал отдельный проект для тестирования только маршрутизации. Есть некоторый код:
(function () {
'use strict';
angular.module('routeApp', ['ngRoute']).config(config);
function config($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: '/Views/home.html',
controller: 'HomeController'
})
.when('/about', {
templateUrl: '/Views/about.html',
controller: 'AboutController'
})
.otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
};
})();
контроллер:
(function () {
'use strict';
angular
.module('routeApp')
.controller('HomeController', HomeController)
.controller('AboutController', AboutController)
.controller('ErrorController', ErrorController);
HomeController.$inject = ['$scope'];
function HomeController($scope) {
$scope.message = "Welcome homepage";
}
AboutController.$inject = ['$scope'];
function AboutController($scope) {
$scope.message = "This is about page";
}
ErrorController.$inject = ['$scope'];
function ErrorController($scope) {
$scope.message = "Error 404!";
}
})();
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>AngularJS Routing App</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-route.js"></script>
<script src="app.js"></script>
</head>
<body ng-app="routeApp">
<a href="/">Home</a>
<a href="/about">About</a>
<div>
<ng-view></ng-view>
</div>
</body>
</html>
Что я делаю не так? Требуется ли какая-либо специальная конфигурация сервера?
PS. Я использую Visual Studio 2015 с обновлением 3.
PS2. Трассировка стека браузера:
Uncaught Error: [$injector:modulerr] Failed to instantiate module routeApp due to:
Error: [$injector:unpr] Unknown provider: a
http://errors.angularjs.org/1.5.6/$injector/unpr?p0=a
at https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.js:68:12
at https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.js:4501:19
at getService (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.js:4654:39)
at injectionArgs (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.js:4678:58)
at Object.invoke (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.js:4700:18)
at runInvokeQueue (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.js:4601:35)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.js:4610:11
at forEach (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.js:322:20)
at loadModules (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.js:4591:5)
at createInjector (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.js:4513:19)
http://errors.angularjs.org/1.5.6/$injector/modulerr?p0=routeAppamp;p1=Error%3….googleapis.com/ajax/libs/angularjs/1.5.6/angular.js:4513:19)
PS3. Уменьшенный app.js
!function(){"use strict";function a(a,b){a.when("/",{templateUrl:"/Views/home.html",controller:"HomeController"}).when("/about",{templateUrl:"/Views/about.html",controller:"AboutController"}).otherwise({redirectTo:"/"}),b.html5Mode(!0)}angular.module("routeApp",["ngRoute"]).config(a)}(),function(){"use strict";function a(a){a.message="Welcome homepage"}function b(a){a.message="This is about page"}function c(a){a.message="Error 404!"}angular.module("routeApp").controller("HomeController",a).controller("AboutController",b).controller("ErrorController",c),a.$inject=["$scope"],b.$inject=["$scope"],c.$inject=["$scope"]}();
Ответ №1:
Убедитесь, что вы запускаете это приложение на сервере.