AngularJS SPA не работает в проекте Web Api

0

Я создал проект web api, и после этого я собираюсь создать одностраничное приложение, но получаю некоторую ошибку, поэтому я отправляю свой код ниже:

Мой код angularjs:

var app = angular.module('myApp', ['ngRoute']);

app.config('$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/',{
        templateUrl: 'tpl/users.html',
        controller: 'myController'
    })
    .when('/addusers',  {
        templateUrl: 'tpl/addusers.html',
        controller: 'addusers'
    })
    .when('/admin',{
        templateUrl: 'tpl/admin.html',
        controller: 'admin'
    });
});

app.controller('myController', function ($scope) {
    $scope.message = 'Home';
});

app.controller('admin', function ($scope) {
    $scope.message = 'Admin';
});

app.controller('addusers', function ($scope) {
    $scope.message = 'addusers';
});

и мою страницу html:

<html ng-app="myApp">
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script>
    <script src="app/app.js"></script>
</head>
<body ng-controller="myController">
    <a href="/">Home</a>
    <a href="#/admin">Admin</a>
    <a href="#/addusers">Add Users</a>
    <br />
    <div ng-view> </div>
</body>
</html>

и получение ниже angularjs ошибки:

Error: [$injector:modulerr] http://errors.angularjs.org/1.2.25/$injector/modulerr?p0=myApp&p1=%5Bng%3Aareq%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.2.25%2Fng%2Fareq%3Fp0%3Dfn%26p1%3Dnot%2520a%2520function%252C%2520got%2520string%0AD%2F%3C%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A6%3A450%0ADb%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A19%3A106%0AWa%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A19%3A193%0Asc%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A32%3A423%0Ad%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A34%3A398%0Ae%2F%3C%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A33%3A386%0Ar%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A7%3A288%0Ae%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A33%3A207%0Agc%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A36%3A309%0Afc%2Fc%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A18%3A170%0Afc%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A18%3A387%0AXc%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A17%3A415%0A%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A214%3A469%0Aa%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A145%3A67%0Aoe%2Fc%2F%3C%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A31%3A223%0Ar%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A7%3A288%0Aoe%2Fc%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A31%3A207%0AEventListener.handleEvent*sb%3C%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A143%3A241%0Aa%2F%3C%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A150%3A402%0Ar%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A7%3A288%0Aa%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A149%3A381%0AS.prototype%5Bc%5D%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A154%3A57%0AS.prototype.ready%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A145%3A122%0A%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A214%3A447%0A%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A6%3A2%0A
Теги:
single-page-application
asp.net-web-api2
angularjs-routing

3 ответа

1
Лучший ответ

Определения вашего контроллера (части впрыска зависимостей) являются неправильными. Вы можете следовать руководству стиля джона папы для углового

var app = angular.module('myApp', ['ngRoute']);
app.config(['$routeProvider', function ($routeProvider) {

    $routeProvider.when('/',{
        templateUrl: 'tpl/users.html',
        controller: 'myController'
    }).when('/addusers',  {
        templateUrl: 'tpl/addusers.html',
        controller: 'addusers'
    }).when('/admin',{
        templateUrl: 'tpl/admin.html',
        controller: 'admin'
    });
}]);

app.controller('myController', ['$scope', function ($scope) {
    $scope.message = 'Home';
}]);

app.controller('admin', ['$scope', function ($scope) {
    $scope.message = 'Admin';
}]);

app.controller('addusers', ['$scope', function ($scope) {
    $scope.message = 'addusers';
}]);
  • 0
    Спасибо большое работает нормально
  • 0
    @scokmen, мой плохой, я случайно проголосовал за это :( Я проголосую, когда ТАК позволит мне. Извините за это.
Показать ещё 3 комментария
0

Вы неправильно используете конфигурацию. Вам не нужно использовать параметр $ routeProvider в качестве параметра.

некорректный

app.config('$routeProvider', function ($routeProvider) {
});

Верный

app.config(function ($routeProvider) {
});

Кроме того, Angular больше не использует ngRoute из коробки. Это отдельный файл, который вам нужно включить (обратите внимание на версию):

https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular-route.js

0

Я работаю над SPA в угловом, а также и получил ту же ошибку совсем недавно,

Это то, что я обнаружил, когда я использовал ngRoute. ngRoute работает, но кажется мне очень грязным и продолжал давать мне эту ошибку и некоторые другие.

Я, вероятно, просто использовал это неправильно, но я рекомендую вам переключиться на " UI-Router ",

Он должен очистить способ маршрутизации и упростить обработку объектов во всем вашем проекте.

  • 0
    Спасибо Ричарду Суссану, я буду использовать его в будущем, но что не так с моим кодом. я сопоставил это со многими примерами, но ничего не понял неправильно и получил ту же ошибку
  • 0
    Таким образом, по этой ссылке ошибка говорит: «Аргумент« fn »не является функцией, получил строку». Я нашел это , которое решает эту проблему. Вероятно, это ошибка в другом фрагменте кода, который вы не указали в своем вопросе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню