2017-03-17 14 views
2

こんにちは私は角度が新しく、1つのHTMLファイルで2つのアプリを作成しようとしていますが、2番目のアプリの出力が得られません。最初のアプリ。誰かが私が間違っていることを教えてもらえますか?コードを使用すると、単一のHTMLファイル内に2つのモジュールをブートストラップすることができないよう2番目のアプリが角度jsで動作していません

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<!DOCTYPE html> 
 
    <html> 
 
     <head> 
 
      <title>The example for angular</title> 
 
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.min.js"></script> 
 
      <style> 
 
       input.ng-invalid { 
 
        background-color: lightcyan; 
 
       } 
 
    
 
      </style> 
 
     </head> 
 
     <body> 
 
      <div ng-app="myApp"> 
 
       <div ng-controller="hello"> 
 
        <p>{{firstname}}</p> 
 
       </div> 
 
       <div ng-init="Akshay=[ 
 
          {firstname:'Sandeep',place:'mangalore'}, 
 
        {firstname:'sirish', place:'haridwar'}, 
 
        {firstname:'krish', place:'mathura'}]"> 
 
        <div ng-repeat="name in Akshay"> 
 
         {{name.firstname + ' ' + name.place}} 
 
        </div> 
 
       </div> 
 
       <div class="ang"></div> 
 
       <form name="myForm"> 
 
        <input type="email" name="emaild" ng-model="text"> 
 
        <span ng-show="myForm.emaild.$error.email">Please enter the proper email</span> 
 
       </form> 
 
       <input type="text" ng-model="mytext" required> 
 
      </div> 
 
    
 
      <div ng-app="Appname" ng-controller="personCtrl"> 
 
       <input type="text" ng-model="firstName"> 
 
       <input type="text" ng-model="lastName"> 
 
       <p>His firstname was{{firstName}}</p> 
 
       <p>His second name was {{lastName}} </p> 
 
       <h1> His name was {{fullname()}} </h1> 
 
    
 
      </div> 
 
      <script> 
 
       var app = angular.module("myApp", []); 
 
       app.controller("hello", function ($scope) { 
 
        $scope.firstname = "Akshay"; 
 
       }); 
 
       app.directive("ang", function() { 
 
        return { 
 
         restrict: "C", 
 
         template: "This is a great time to be alive" 
 
        }; 
 
       }); 
 
    
 
       var appsec = angular.module('Appname', []); 
 
       appsec.controller("second", function ($scope) { 
 
        $scope.firstName = "Bhagath"; 
 
        $scope.lastName = "Singh"; 
 
        $scope.fullname = function() { 
 
         return $scope.firstName + " " + $scope.lastName; 
 
        }; 
 
       }); 
 
    
 
    
 
      </script> 
 
     </body> 
 
    </html>

答えて

3

を下回っています。 Doc

HTMLドキュメントごとに1つのAngularJSアプリケーションしか自動ブートストラップできません。ドキュメントにある最初のngAppは、アプリケーションとして自動ブートストラップするルート要素を定義するために使用されます。 HTMLドキュメントで複数のアプリケーションを実行するには、代わりにangular.bootstrapを使用して手動でブートストラップする必要があります。 AngularJSのアプリケーションを使用すると、ドキュメントの準備ができている場合に発生するために、2本のブートストラップラインを変更し、同時に

両方のモジュールをブートストラップするには、手動ブートストラップ法を使用することができ、互い

2

内にネストすることはできません。

angular.element(document).ready(function() { 
    angular.bootstrap(document.getElementById('app1'), ['app1']); 
    angular.bootstrap(document.getElementById('app2'), ['app2']); 
}); 

このようにしてplnkrを変更すると、両方のアプリが正常に動作するようになりました。

ライブデモ:https://jsfiddle.net/samirshah1187/w7gv56t5/

0

@Samirが言ったように、私たちは、同時に両方のモジュールをブートストラップするには、手動ブートストラップ法を使用することができ、我々は、この<div ng-app="myApp" id="myId"><div ng-app="Appname" ng-controller="personCtrl" id="personId">のようにIDを定義

、その後でこれらの行を追加する必要があります最後の内部スクリプト

angular.bootstrap(document.getElementById('myId'), ['myApp']); angular.bootstrap(document.getElementById('personId'), ['Appname']);

我々は同じページ内に複数のngのアプリを持っているモジュールをブートストラップする必要があります。

関連する問題