文本框

时间:2016-05-13 15:11:58

标签: javascript c# asp.net angularjs textbox

我正在尝试使用angularjs在mvc-asp中开发一个页面。我有一个这样的文本框:

<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"时,它工作正常并且文本框已填充价值..

为什么?

1 个答案:

答案 0 :(得分:0)

这是因为当你指定ng-model指令时,angular会将输入值更新为控制器中Name的值,我只能假设它是一个空值。

生成页面时直接在输入上设置值不会更新基础模型值。真正发生的是你在输入中生成一个带有值的页面,而angular会根据null的值(ng-model)立即更新输入的值({{1 }})。

您需要以角度方式执行操作,并将控制器范围中Name的值设置为要填充的值。

不幸的是,它太过牵扯,无法向您提供有关如何使用AngularJS构建.NET MVC应用程序的信息。但是,我建议你在https://angularjs.org/网站和YouTube(这个看起来很有帮助https://www.youtube.com/watch?v=zKkUN-mJtPQ&list=PL6n9fhu94yhWKHkcL7RJmmXyxkuFB3KSl)上阅读一些初学角度教程,以了解除了.NET之外角度如何工作。

一旦了解了角度本身的工作原理,您就可以将其合并到.NET MVC应用程序中。我建议不要使用.NET MVC学习角度,因为2个应用程序的结构根本不同,作为初学者你会遇到很多问题。

这是一个提示但是当你一起使用它们时:使用angular Name(处理ajax)和resources来调用你的控制器方法并检索要绑定到的angular的数据。 MVC视图本身根本不会处理数据绑定。