web-dev-qa-db-ja.com

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);

first.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>
14
yellowbyte

これが最も基本的なセットアップの可能性です。あなたのコードで別のセットアップを試みます: http://plnkr.co/edit/sN9TagVBOdX3mkrxaTiu?p=preview

[〜#〜] edit [〜#〜]サンプルコードで更新。すべてが機能しているようですか?

EDIT 2問題は、OPがWebサーバーを実行していなかったことです。 Ng-Routeが適切に機能するには、ウェブサーバーが必要です。

11
Yoeri

ルートに移動しようとしたときにURLに感嘆符が挿入されていたため、ルーティングが機能しませんでした。追加した $locationProvider このような

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

感嘆符を削除すると、テンプレートビューに移動したときにテンプレートビューが表示され始めました。私はここで答えを見つけました angularjsアプリのハッシュ(#!)の後の感嘆符

7
gary69