我正在尝试使用控制器中的数据预填充表单。

简单的代码看起来像

<div ng-app="app" ng-controller="MainCtrl">
    <input name="widget.title" ng-model="widget.title">
    <input name="widget.content" ng-model="widget.content">
    <button ng-click="set('foo')">set to foo</button>
</div>




angular.module('app', [])
    .controller('MainCtrl', function($scope) {
        $scope.widget = {title: 'abc'};
        $scope.widget = {content: 'test'};
        $scope.set = function(new_title) {
            this.widget.title = new_title;
        }
    });


但它总是只预填最后一个输入字段

JSFiddle:http://jsfiddle.net/b40nLuf2/

最佳答案

在您的情况下,您要用第二个$scope.widget ($scope.widget = {title:'abc'})覆盖第一个($scope.widget = {content:'test'})

您必须通过以下方式定义一个具有两个属性(标题和内容)的对象$scope.widget

angular.module('app', [])
    .controller('MainCtrl', function($scope) {
        $scope.widget = {
            title: 'abc',
          content: 'test'
        };
        $scope.set = function(new_title) {
            this.widget.title = new_title;
        }
    });

关于javascript - AngularJS根据 Controller 数据预填充输入字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47335129/

10-08 22:14