我有一个使用 ASP.NET MVC 5 构建的表单@Html.TextBoxFor
用我的模型填充表单(例如,在表单导航或服务器端验证失败之后)。
我现在引入了使用 Angular 的客户端地址查找,这意味着一些表单字段现在用ng-model
启用 Angular 查找来填充搜索到的地址。
e.g.:
@Html.TextBoxFor(m => m.Town, new { @class="form-control", ng_model="address.town" })
添加ng-model
现在,当页面重新加载时,会覆盖 MVC 模型设置的值。
在浏览器中查看源代码显示文本框值已正确设置为Town
来自 MVC 模型,但 Angular 随后出现并填充它address.town
它是空的,因此表单不显示任何值。
我怎样才能阻止 Angular 这样做呢?
您可以使用ng-init
强制从 MVC 获取值
<input name="Town" type="text" ng-model="address.town" ng-init="address.town= @Model.Town" />
@Html.TextBoxFor(m => m.Town, new { ng_model="address.town", ng_init="address.town= Model.Town" })
或者,我使用我在这里找到的指令https://stackoverflow.com/a/22567485/2030565 https://stackoverflow.com/a/22567485/2030565
app.directive('input', function ($parse) {
return {
restrict: 'E',
require: '?ngModel',
link: function (scope, element, attrs) {
if (attrs.ngModel) {
val = attrs.value || element.text();
$parse(attrs.ngModel).assign(scope, val);
}
}
}; });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)