1

私は自分のアプリケーションの 1 つでangularjsこれを使用するのは初めてです。angularjsアプリケーションはdjangoを使用して開発されています。しかし、私が現在試していることは、django とは関係ありません (推測します)。次のような非常に単純なテンプレートがあります。

<html xmlns:ng="http://angularjs.org" lang="en" ng-app"><head>
    <title>Testing Angular</title>
    <link rel="stylesheet" type="text/css" href="/static/css/application.css">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" »="" type="text/javascript">
    </script>
    <script type="text/javascript" src="/static/js/messages.js"></script>
    <script src="http://code.angularjs.org/angular-1.0.0.min.js"></script>
    <script src="/static/js/marketing/app.js"></script>
    <script src="/static/js/marketing/controllers.js"></script>

</head>
<body>
    <div id="content" ng-controller="UserListControl" class="ng-scope">
        [[ users.length ]]
    </div>
</body>
</html>

以下はそれぞれapp.jsとの内容ですcontrollers.js

app.js

'use strict';

var newApp = angular.module('newApp', []) 
    .config(function($interpolateProvider){
        // To prevent the conflict of `{{` and `}}` symbols
        // between django templating and angular templating we need
        // to use different symbols for angular.
        $interpolateProvider.startSymbol('[[');
        $interpolateProvider.endSymbol(']]');
    });

controllers.js

function UserListControl($scope) {
    $scope.users = [   
        {   
            'name' : 'John Doe',
            'type' : 'Platinum',
        },  
        {   
            'name' : 'Matt Hill',
            'type' : 'Gold',
        }   
    ];  
}

ただし、テンプレート[[ users.length ]]は実際に長さをレンダリングするのではなく、単純にレンダリングします。

ngRepeat次のようにディレクティブも試しました。

<p ng-repeat="user in users">
    <p>[[user.name]], ([[user.type]])</p>
<p>

<tr ng-repeat="i in [0, 1, 2, 3, 4, 5, 6, 7]"><td>[[ i ]]</td></tr>

最初のng-repeatディレクティブは次をレンダリングします。

<!-- ngRepeat: usr in users -->
<p ng-repeat="usr in users" class="ng-scope">
        </p>
<p ng-repeat="usr in users" class="ng-scope">
        </p>
<p><a href="#"></a>()</p>
<p></p>

そして2番目のものはレンダリングします:

<!-- ngRepeat: i in [0, 1, 2, 3, 4, 5, 6, 7] -->
<tr ng-repeat="i in [0, 1, 2, 3, 4, 5, 6, 7]" class="ng-scope"><td>[[ i ]]</td></tr>
<tr ng-repeat="i in [0, 1, 2, 3, 4, 5, 6, 7]" class="ng-scope"><td>[[ i ]]</td></tr>
<tr ng-repeat="i in [0, 1, 2, 3, 4, 5, 6, 7]" class="ng-scope"><td>[[ i ]]</td></tr>
<tr ng-repeat="i in [0, 1, 2, 3, 4, 5, 6, 7]" class="ng-scope"><td>[[ i ]]</td></tr>
<tr ng-repeat="i in [0, 1, 2, 3, 4, 5, 6, 7]" class="ng-scope"><td>[[ i ]]</td></tr>
<tr ng-repeat="i in [0, 1, 2, 3, 4, 5, 6, 7]" class="ng-scope"><td>[[ i ]]</td></tr>
<tr ng-repeat="i in [0, 1, 2, 3, 4, 5, 6, 7]" class="ng-scope"><td>[[ i ]]</td></tr>
<tr ng-repeat="i in [0, 1, 2, 3, 4, 5, 6, 7]" class="ng-scope"><td>[[ i ]]</td></tr>

変数を認識できないのはなぜですか?私は何を間違っていますか?

PS:

コンソールにエラーはありません。

  • 角度バージョン: 1.0.0
  • ジャンゴ バージョン: 1.4
  • Web ブラウザ: Google Chrome 24.0.1312.68
  • オペレーティング システム: Ubuntu 12.04
4

2 に答える 2

1

ng-app="newApp" を追加し、Angular スクリプト タグを HTML 本文の下部に移動して、最初のユーザー リピーターの終了 p タグを修正してみてください。

<div ng-app="newApp">
<div id="content" ng-controller="UserListControl" class="ng-scope">
        [[ users.length ]]

        <p ng-repeat="user in users">[[user.name]], ([[user.type]])</p>
</div>
<script src="http://code.angularjs.org/angular-1.0.0.min.js"></script>

次のフィドルを参照してください。

http://jsfiddle.net/jwanga/VLRVU/

于 2013-02-12T06:39:48.080 に答える