2016-05-13 5 views
0

私はangularjsでmvc-aspのページを開発しようとしています。私はこのようなテキストボックスを持っています:ng-model in angleboxテキストボックス内の角度無効値

<div class="input-group"> 
    <label for="Name">نام خودرو</label> 
    <input class="form-control" id="Name" ng-model="Name" required name="Name" type="text" value="@Edit.Name"> 
</div> 
<span style="color:red" ng-show="frm.Name.$invalid"> 
    <span ng-show="frm.Name.$error.required">نام خودرو را وارد کنید</span> 
</span> 

私は、anglejsを使ってテキストボックスを検証しています。すべて正常に動作しますが、問題はvalue="@Edit.Name"です。編集コントローラでこのオプションを編集するにはEditというビューバックに値をプッシュし、value="@Edit.Name"を使用して値をテキストボックスに渡します。

コードでわかるように、編集ボタンをクリックすると値がテキストボックスに渡されますが、テキストボックスは空です。ng-model="Name"を削除すると、それはうまく動作し、テキストボックスに値が入力されます..

なぜですか?

+0

これは、ng-modelが値を設定しているためです。コントローラの$ scope.Nameをチェックすると空になります。 – Zaki

答えて

0

ng-modelディレクティブを指定すると、角度が入力の値をコントローラ内のNameの値に更新するため、これはNULL値とみなすことができます。

ページを生成するときに入力値を直接設定しても、基礎となるモデル値は更新されません。実際に何が起こっているのは、入力の値を持つページを生成しており、角度はng-modelName)の値(null)に基づいて入力の値を直ちに更新するということです。

角度を変えて、コントローラスコープ内のNameの値を設定する値に設定する必要があります。

残念ながら、AngularJSを使用して.NET MVCアプリケーションを構造化する方法についての情報をここで提供することはできません。しかし、私は、https://angularjs.org/サイトとYouTube(これは参考になると思われるhttps://www.youtube.com/watch?v=zKkUN-mJtPQ&list=PL6n9fhu94yhWKHkcL7RJmmXyxkuFB3KSl)に関するいくつかの初心者の角度チュートリアルを見て、角度の仕組みが.NETから離れていることを理解することをお勧めします。

角度がどのように機能するかを理解すれば、それを.NET MVCアプリケーションに組み込むことができます。私は2つのアプリケーションの構造が根本的に異なり、初心者として多くの問題にぶつかるので、角度を学ぶときに.NET MVCを使用しないことをお勧めします。

角度をresources(ハンドルはajax)とservices/factories/providersを使用して、コントローラメソッドを呼び出し、結合する角度を取得するためのヒントです。 MVCビュー自体はデータバインディングをまったく処理しません。

+0

私は角度jで新しいので、ここに私の範囲です

+0

解決策の詳細を教えてください。 –

+0

@EhsanAkbar私の回答を編集してください – Joel

関連する問題