2016-05-13 11 views
0

我想用angularjs在mvc-asp中開發一個頁面。我有這樣的文本框:ng-model在文本框中禁用角度值

<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> 

正如你所看到的我使用angularjs驗證文本框。一切工作正常,但問題是value="@Edit.Name"我把這個選項編輯編輯控制器我把我的價值推到一個叫做Edit視圖袋,我用value="@Edit.Name"將值傳遞給文本框。

正如你可以看到在代碼中,當我點擊編輯按鈕的值應該傳遞給文本框,但文本框是空的,當我刪除ng-model="Name",它工作正常,文本框填充值..

爲什麼?

+0

這是因爲ng-model正在爲您設置值。如果你在控制器中檢查$ scope.Name,它將是空的。 – Zaki

回答

0

這是因爲當您指定ng-model指令時,角度將輸入值更新爲控制器中的值Name,我只能假定它是空值。

生成頁面時直接在輸入上設置值不會更新基礎模型值。實際發生的情況是,您使用輸入中的值生成頁面,並且角度立即根據ng-modelName)的值(null)更新輸入值。

您需要以角度方式做事,並將控制器範圍中的Name的值設置爲您要填充的值。

不幸的是,如果能夠爲您提供關於如何使用AngularJS來構建.NET MVC應用程序的信息,那麼它就太牽涉到了。不過,我建議你通過https://angularjs.org/網站和YouTube上的一些初學者角度教程(這個看起來很有幫助https://www.youtube.com/watch?v=zKkUN-mJtPQ&list=PL6n9fhu94yhWKHkcL7RJmmXyxkuFB3KSl)來了解除.NET以外,角度如何獨立運行。

一旦你明白了角本身的工作方式,那麼你就可以將它合併到.NET MVC應用程序中。我建議不要在學習角度時使用.NET MVC,因爲2個應用程序的結構有着根本性的不同,並且作爲初學者會碰到很多問題。

這裏有一個提示,雖然你一起使用它們:使用角度resources(處理ajax)和services/factories/providers來調用你的控制器方法並檢索角度綁定到的數據。 MVC觀點自己根本不會處理數據綁定。

+0

我是如此新的角js這裏是我的範圍

+0

您能否給我一個解決方案的細節? –

+0

@EhsanAkbar請參閱編輯我的答案 – Joel