angularjsルーティングを使用してtemplateUrlをロードできないようです。
django と angularjs を使用します。127.0.0.1:8000/phones/
に
移動すると、127.0.0.1:8000/phones/#/にリダイレクトされます
。次に、更新して再確認します。
どちらの場合も (初回と更新後)、TESTING 文字列が表示されます。コードは次のとおりです。
index.html
{% load staticfiles %}
<!DOCTYPE html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"> </script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular-route.min.js"></script>
<script>
var phones = angular.module('phones', ['ngRoute']);
phones.config(function($interpolateProvider){
$interpolateProvider.startSymbol('{[{');
$interpolateProvider.endSymbol('}]}');
});
phones.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/', {
templateUrl: "{% static "partials/first.html" %}",
}).otherwise({
redirectTo: "/"
});
}]);
</script>
</head>
<body ng-app="phones">
<div ng-view></div>
TESTING
</body>
</html>
first.html
HELLO
runserver コンソールから:
[31/Jul/2014 18:40:46] "GET /phones/ HTTP/1.1" 200 1488
[31/Jul/2014 18:40:48] "GET /phones/ HTTP/1.1" 200 1488
[31/Jul/2014 18:40:48] "GET /static/partials/first.html HTTP/1.1" 304 0
ご覧のとおり、angularjs ルーティングは HTML を要求しますが、それでも表示されません。
もう 1 つの質問は、コンソール出力に関するものです。リフレッシュしたときだけ first.html の GET リクエストを送信 (または単に表示) するのはなぜですか? ルーティングが最初に first.html を要求することを期待しています..
編集 ブラウザのコンソールを追加する:
TypeError: undefined is not a function
at v (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular-route.min.js:6:357)
at g.$broadcast (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:102:324)
at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular-route.min.js:11:179
at C (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:91:121)
at C (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:91:121)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:92:288
at g.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:100:198)
at g.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:98:82)
at g.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:101:12)
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:66:321) angular.js:9037
EDIT #2 - 非縮小角度に変更した後にブラウザーのコンソールを追加する:
TypeError: undefined is not a function
at update (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular-route.js:871:25)
at Scope.$broadcast (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:11803:28)
at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular-route.js:552:26
at wrappedCallback (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:10549:81)
at wrappedCallback (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:10549:81)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:10635:26
at Scope.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:11528:28)
at Scope.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:11373:31)
at Scope.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:11634:24)
at done (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:7635:45)
御時間ありがとうございます