2016-03-25 18 views
1

這個問題可能是一個非常非常基本的Angular.JS問題。 可能幾乎這個問題是在StackOverFlow之前問的,但是我找不到問題,所以我不得不問這個問題。AngularJS - ng-app不工作如果不是emplty

我在Angular.JS中很新,我想用Angular.JS創建一個基本表單,它將驗證給定輸入的電子郵件地址。

什麼工作對我來說是─

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 

 
<form ng-app="" name="myForm"> 
 
    Email: 
 
    <input type="email" name="myAddress" ng-model="text"> 
 
    <span ng-show="myForm.myAddress.$error.email">Not a valid e-mail address</span> 
 
</form> 
 
<p>Enter your e-mail address in the input field. AngularJS will display an errormessage if the address is not an e-mail.</p>

但是我想給我的這 - 像這樣ng-app="my_try_app"我的代碼已經像這個 -

角應用程序的名稱

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 

 

 
<form ng-app="my_try_app" name="myForm"> 
 
    Email: 
 
    <input type="email" name="myAddress" ng-model="text"> 
 
    <span ng-show="myForm.myAddress.$error.email">Not a valid e-mail address</span> 
 
</form> 
 

 
<p>Enter your e-mail address in the input field. AngularJS will display an errormessage if the address is not an e-mail.</p>

而你看到它沒有工作。

所以,我的問題是 -

  1. 什麼是給我的角度應用程序的名稱的方式?

  2. 爲什麼在我的情況下它不工作?

在此先感謝您的幫助。

+0

您必須爲您的視圖定義應用程序。 –

+0

可以請你給我一個詳細的答案,請@hadiJZ –

+0

看看這個答案,這是解釋幾件事情關於模塊和控制器定義http://stackoverflow.com/a/26797874/930170 –

回答

0

請看看下面angulaJS DOC: https://docs.angularjs.org/api/ng/directive/ngApp 基本上, 「NG-應用」 被引導階段過程中使用,它有助於角度來初始化你的模塊(確定。的應角影響下未來的HTML代碼邊界)

,例如: 名稱: 的NG- app指令告訴AngularJS,<div>元素是AngularJS應用程序的「所有者」。 在提到的示例代碼中,angularJS被配置爲以默認模式工作。 因此,ng-app是可選的,即空/空。

但是,如果你想引導你的應用程序/ HTML與NG-應用=「my_try_app」,則可以按照以下任何

  1. 定義的角度控制或者腳本內標籤或單獨的JS文件&進口使用<script src>

    例如,下面添加HTML文件

    <script> 
    var app = angular.module('my_try_app', []); 
    app.controller('myTryCtrl', function($scope) { 
    $scope.text= "[email protected]";  
    }); 
    </script> 
    
  2. 對於較大的應用程序,I,E與多個視圖內,引導角使用.. angular.bootstrap(document,["my_try_app"]);

希望這有助於。

2

您必須爲您的視圖定義應用程序。喜歡這個。

angular.module("my_try_app",[]);
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 

 

 
<form ng-app="my_try_app" name="myForm"> 
 
    Email: 
 
    <input type="email" name="myAddress" ng-model="text"> 
 
    <span ng-show="myForm.myAddress.$error.email">Not a valid e-mail address</span> 
 
</form> 
 

 
<p>Enter your e-mail address in the input field. AngularJS will display an errormessage if the address is not an e-mail.</p>

+0

所以,如果我定義應用程序名稱,它應該在JS文件中定義,對吧? –

+0

如果你在js文件中定義,它會更好。但是你可以在html中的script標籤中定義它。 –

+0

我不是問,有沒有什麼方法可以在HTML中做到這一點,就像這段代碼中的其他元素一樣? –