首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在AngularJS中使用控制器动作设置表单域的值

如何在AngularJS中使用控制器动作设置表单域的值
EN

Stack Overflow用户
提问于 2014-02-02 22:10:10
回答 1查看 12.1K关注 0票数 3

如何通过控制器的操作手动设置表单域的值?在我的例子中,我有一个大约有10个字段的表单。一个表单域是一个日期域,它有一个用于将其值设置为当前日期的按钮,这是我通过服务获取的。我已经尝试过操作嵌套的作用域值,但是没有用。问题是在设置日期字段的值之后,其他表单域/范围值的值被销毁。要说明该问题,请参阅下面的JSfiddle和代码。

JSFiddle to illustrate problem

代码语言:javascript
代码运行次数:0
运行
复制
<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'
        }
    };
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-02 22:21:59

每次调用set方法时,都会覆盖整个person对象引用。请注意您每次都是如何创建新对象的。你最有可能的意图是:

代码语言:javascript
代码运行次数:0
运行
复制
$scope.setFirstName = function(){
   $scope.person.first_name = 'King';
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21511529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档