2017-02-22 3 views
0

私はAngularjsの初心者です。フィールドが次の角度1.3.0コードで定義されている場所を知りたいと思います。私は依存性ngMessagesを使用しています。どこからこのコードを自分のページのフォームに使用していますか?しかし、私はここでどの分野が参照されているのか理解できません。私はそれが何を指しているのか理解することができます(それの真下にあるdiv)が、正確に関係を作りましたか? Angular-messages.jsから得ることができるのはここでng-model = "field"で定義されているフィールド

"というテキスト入力があり、{@link ngModel ngModel}ディレクティブを使用してスコープ変数フィールドにバインドされています。

したがって、$ scopeも記録されていて、フィールドに関連するものは何も見つかりませんでした。してください、誰かが以下の部門にどのように関係しているか教えてください。

<form name="myForm"> 
    <label> 
     Enter text: 
     <input type="email" ng-model="field" name="myField" required maxlength="15" /> 
    </label> 
    <div ng-messages="myForm.myField.$error" role="alert"> 
     <div ng-message="required">Please enter a value for this field.</div> 
     <div ng-message="email">This field must be a valid email address.</div> 
     <div ng-message="maxlength">This field can be at most 15 characters long.</div> 
    </div> 
</form> 
+0

https://docs.angularjs.org/api/ng/

htmlコード:あなたのコントローラーのフィールドは、ここではサンプルコードですdirective/ngModel – Mistalis

+0

[plunker](https://plnkr.co/edit/oRj1rJRGclwcOscKq6xO?p=preview)に私のコード全体があります – Ravy

答えて

0

NG-モデルは

NG-モデルは$スコープで電子メールのテキストフィールドの値をバインドするので、ここでは、angularjsコントローラとHTMLテキストフィールドをバインドします。

<html ng-app="myApp"> 
<div data-ng-controller="your-controller"> 
<form name="myForm"> 
    <label> 
    Enter text: 
    <input type="email" ng-model="field" name="myField" required  maxlength="15" /> 
    </label> 
    <div ng-messages="myForm.myField.$error" role="alert"> 
    <div ng-message="required">Please enter a value for this field.</div> 
    <div ng-message="email">This field must be a valid email address.</div> 
    <div ng-message="maxlength">This field can be at most 15 characters long.</div> 
    </div> 
    </form> 
</div> 
</html> 

コントローラコード:

var myApp=angular.module('myApp'); myApp.controller('your-controller',function($scope){ console.log($scope.field); });

+0

コントローラの作成時に '$ scope.field'が入力に設定されていないので、' console.log() 'は' undefined'を出力します。 – Mistalis

1

あなたはngModelは、テンプレートのcontrollerに関連した$scopeの一部になることを、コントローラでそれをinitiliazingせず

をフォーム(HTML)のいずれかのngModelを定義するたびに。

ngModelfieldのような外観は、コントローラで初期化されていません。

しかし、マップされたコントローラの$scopeの部分。

<input type="email" ng-model="field" name="myField" required maxlength="15" /> 

ここnamengModelは同じです。

角型では、input controlにはフォーム名を使用してアクセスできます。

myForm.myField //your_form_name.form_field_name 

$scopeの内容をチェックする場合は、コントローラーで印刷する必要があります。 ngModel docsから

1

ngModelディレクティブは が作成され、この指令によって露出さNgModelControllerを使用してスコープのプロパティにinputselecttextarea(またはカスタムフォーム 制御)に結合します。


あなたが<input ng-model="field"/>を書くとき、fieldsは、お使いのコントローラ($scope.fields)の範囲にバインドされます。

コントローラーで初期化していない場合は、fieldsはおそらくundefinedです。

+0

私は[plunker](https:// plnkr)に自分のコードへのリンクを追加しました。 co/edit/oRj1rJRGclwcOscKq6xO?p =プレビュー)。そのことがはっきりと分かり、私のコントローラを初期化しましたが、値は未定義です。それは私の質問です、なぜその値は私のコントローラの範囲にバインドされていることを明らかにドキュメントが定義されていません。 – Ravy

関連する問題