我正在尝试使用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"
时,它工作正常并且文本框已填充价值..
为什么?
答案 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视图本身根本不会处理数据绑定。