0

私は Angular JS を初めて使用します (私の用語が間違っていたり、十分に説明されていない場合は申し訳ありません)。

メッセージを返すだけの複数のモジュールを作成するデモをしようとしています。私の domo には 2 つのファイルしかありません。以下の完全なコードをコピーしています。

JS:

var app = angular.module("app", ['controllers1', 'controllers2']);

    angular.module('controllers1', []).controller('MainController', function($scope) {

        $scope.message1 = "controllers1 message";
        $scope.func1 = function () {
            return "controllers1 func";
        }

        }
    );

    angular.module('controllers2', []).controller('MainController2', function ($scope) {

        $scope.message2 = "controllers2 message";
        $scope.func2 = function () {
            return "controllers2 func";
        }

    }
    );

HTML:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" ng-app="app">
    <head>
        <title></title>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>
        <script src="JS/Index.js"></script>

    </head>
    <body>
        {{2+2}}

        <div ng-controller="MainController1">
            {{message1}}
            {{func1()}}
            <br /><br/>

            <div ng-controller="MainController2">
                {{
                {{message2}}
                {{func2()}}
                }}
            </div>

        </div>
    </body>
</html>

問題: モジュールを 1 つだけ作成すると問題なく動作しますが、モジュールを 2 つ作成すると奇妙なエラーが発生します。このエラーを修正し、複数のモジュールを作成して使用する人を教えてください。

Error: [$parse:syntax] http://errors.angularjs.org/undefined/$parse/syntax?p0=message2&p1=is%20unexpected%2C%20expecting%20%5B%3A%5D&p2=16&p3=%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%7Bmessage2&p4=message2
L/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:6:446
Ya.prototype.throwError@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:152:392
Ya.prototype.consume@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:153:338
Ya.prototype.object@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:161:34
Ya.prototype.primary@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:152:26
Ya.prototype.unary@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:158:114
Ya.prototype.multiplicative@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:158:1
Ya.prototype.additive@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:157:365
Ya.prototype.relational@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:157:1
Ya.prototype.equality@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:157:1
Ya.prototype.logicalAND@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:156:1
Ya.prototype.logicalOR@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:156:346
Ya.prototype.ternary@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:156:1
Ya.prototype.assignment@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:155:1
Ya.prototype.expression@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:155:369
Ya.prototype.filterChain@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:155:1
Ya.prototype.statements@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:154:292
Ya.prototype.parse@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:151:19
td/this.$get</<@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:89:450
f@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:72:89
t@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:56:1
oa@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:45:14
E@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:43:136
E@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:43:252
E@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:43:252
E@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:43:252
v@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:41:303
Wb/c/</<@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:17:455
wd/this.$get</g.prototype.$eval@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:100:187
wd/this.$get</g.prototype.$apply@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:100:452
Wb/c/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:17:413
d@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:30:321
Wb/c@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:17:321
Wb@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:18:23
Oc@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:17:96
@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:198:494
a@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:128:229
Uc/c/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:26:466
q@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:7:259
Uc/c@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:26:439

https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js
Line 83
4

2 に答える 2

1

MainControllerコントローラーを宣言しているようですが、ディレクティブで参照MainController1しています。ng-controller

代わりに次の行を試してください。

angular.module('controllers1', []).controller('MainController1', function($scope) {

また、これらのコード行で何をしようとしているのかわかりません:

<div ng-controller="MainController2">
    {{
        {{message2}}
        {{func2()}}
    }}
</div>

以下に示すように、これらの余分なブラケットを削除してみてください。

<div ng-controller="MainController2">
    {{message2}}
    {{func2()}}
</div>

提供されたリンク ( this one ) を開くと、次のメッセージが表示されます。

構文エラー: トークン 'message2' は予期されていません。[message2] で始まる式 [{{message2] の 16 列目に [:] が必要です。

そうです、HTML テンプレートで無効な式を使用しているため、エラーがスローされます。

于 2014-07-22T02:21:55.427 に答える
1

この動作中のコードを確認してください - PLUNKER LINK

あなたが持っている問題は中括弧です

      {{ //remove this
            {{message2}}
            {{func2()}}
      }} //remove this as well

また、ダニロが指摘したように

angular.module('controllers1', [])
.controller('MainController1', function($scope) {
于 2014-07-22T02:28:48.087 に答える