Маршрутизация Angularjs не работает

Все работало нормально, пока я не попытался добавить маршрутизацию. Я читал, что Angularjs версии 1.2+ требует ngRoute в качестве зависимости (я использую версию 1.2.16). Я добавил его, но он все еще не работает. Ниже мои коды.

test.html (главная страница)

<html ng-app="demoApp">
<head>
    <title></title>
</head>
<body>
    <p>Front Page</p>
    <div ng-view></div>
    <script src="angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular-route.js"></script>
    <script src="testjs.js"></script>
</body>
</html> 

testjs.js

demoApp = angular.module('demoApp',['ngRoute']);

demoApp.config(function ($routeProvider) {

    $routeProvider.when('/', {
        controller: 'SimpleController',
        templateUrl: '/partials/first.html'
    });

});

var controllers = {};
controllers.SimpleController = function ($scope){
    $scope.first = "Info";
    $scope.customers=[
        {name:'jerry',city:'chicago'},
        {name:'tom',city:'houston'},
        {name:'enslo',city:'taipei'}
    ];
};
demoApp.controller(controllers);

первый.html

<div>
    <input type="text" ng-model="name"/>
    </br>
    {{first}}
    </br> 
    <ul>
        <li ng-repeat="cust in customers | filter:name">{{cust.name | uppercase}} - {{cust.city}}</li>
    </ul>   
</div>

person yellowbyte    schedule 17.04.2014    source источник
comment
Есть ссылка на изображение моего рабочего каталога: postimg.org/image/979tsaecd   -  person yellowbyte    schedule 18.04.2014
comment
Вы уверены, что это правильный синтаксис: demoApp.controller(controllers)? Я не могу найти ссылку на него.   -  person Yoeri    schedule 18.04.2014
comment
Я постараюсь найти точное время видео, где я нашел код. погоди.   -  person yellowbyte    schedule 18.04.2014
comment
и все работало нормально, пока я не попытался сделать маршрутизацию с помощью .config   -  person yellowbyte    schedule 18.04.2014
comment
вы получаете какую-либо ошибку в консоли?   -  person klode    schedule 18.04.2014
comment
Я не запускал его через консоль. Я просто открыл с помощью хрома. Я только что узнал, что у меня возникла ошибка XMLHttpRequest не может загрузить файл:///partials/first.html. Запросы между источниками поддерживаются только для HTTP. при работе на хроме. Я собираюсь попытаться это исправить. Спасибо!   -  person yellowbyte    schedule 18.04.2014


Ответы (2)


Вот самая простая возможная установка, я попробую сделать еще одну с вашим кодом: http://plnkr.co/edit/sN9TagVBOdX3mkrxaTiu?p=preview

EDIT обновлен образцом кода. Вроде все работает?

EDIT 2 проблема в том, что OP не запускал веб-сервер. Ng-Route нуждается в веб-сервере для правильной работы.

person Yoeri    schedule 17.04.2014
comment
Спасибо! Я постараюсь увидеть, что не так с моими кодами. Однако, спасибо! - person yellowbyte; 18.04.2014
comment
видимо, я получил эту ошибку. XMLHttpRequest не может загрузить файл:///partials/first.html. Запросы между источниками поддерживаются только для HTTP. Я постараюсь исправить это сейчас. Спасибо! - person yellowbyte; 18.04.2014
comment
попробуйте использовать partials/first.html (без косой черты) - person Yoeri; 18.04.2014
comment
все тот же результат. Я думаю, что нашел ответ: stackoverflow.com/questions/19847252/ . Очень ценю вашу помощь. - person yellowbyte; 18.04.2014
comment
это не очень хороший ответ. Возможно ли, что вы не используете веб-сервер? Что вы просто просматриваете статический html в своей файловой системе? Если это так, то это ваша проблема. Ng-Route нужен веб-сервер. - person Yoeri; 18.04.2014
comment
это именно тот случай. Все работает, когда я запускаю его на веб-сервере - person yellowbyte; 18.04.2014
comment
Еще одна загадка раскрыта :-) для локальной разработки вы можете использовать grunt для загрузки сервера :-) - person Yoeri; 18.04.2014
comment
Я пробовал то же самое на сервере tomcat, но он не работает. некоторая ошибка показывает, например, 1> Ошибка: Неизвестный поставщик: $sceProvider ‹- $sce ‹- $route ‹- ngViewDirective, а другой — 2> Циклическая зависимость: ngViewDirective - person userBI; 28.07.2014
comment
это другой вопрос. - person Yoeri; 29.07.2014

Моя маршрутизация не работала, потому что в URL-адрес был вставлен восклицательный знак, когда я пытался перейти к своим маршрутам. Я добавил $locationProvider вот так

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

чтобы удалить восклицательный знак, и мои представления шаблонов начали появляться, когда я перешел к ним. Я нашел ответ здесь Восклицательный знак после хеша (#!) в приложении angularjs

person gary69    schedule 31.05.2017