如何通过控制器的操作手动设置表单域的值?在我的例子中,我有一个大约有10个字段的表单。一个表单域是一个日期域,它有一个用于将其值设置为当前日期的按钮,这是我通过服务获取的。我已经尝试过操作嵌套的作用域值,但是没有用。问题是在设置日期字段的值之后,其他表单域/范围值的值被销毁。要说明该问题,请参阅下面的JSfiddle和代码。
JSFiddle to illustrate problem
<div ng:app>
<form name="myForm" ng-controller="Ctrl">Age:
<input type="text" data-ng-model="person.age" />
<br/>First Name:
<input type="text" data-ng-model="person.first_name" />
<button ng-click="setFirstName()" type="button">Set First Name</button>
<br/>Last Name:
<input type="text" data-ng-model="person.last_name" />
<button ng-click="setLastName()" type="button">Set Last Name</button>
<br/>
</form>
</div>
function Ctrl($scope) {
$scope.setFirstName = function () {
$scope.person = {
first_name: 'King'
}
};
$scope.setLastName = function () {
$scope.person = {
last_name: 'Kong'
}
};
}
发布于 2014-02-02 14:21:59
每次调用set方法时,都会覆盖整个person对象引用。请注意您每次都是如何创建新对象的。你最有可能的意图是:
$scope.setFirstName = function(){
$scope.person.first_name = 'King';
}
https://stackoverflow.com/questions/21511529
复制