AngularJS文本输入使用ng-model但需要默认值不能使用value =或ng-init =

时间:2014-10-08 15:35:27

标签: javascript angularjs

我有一个包含许多输入的帐户表单。其中一个如下:

<input class="form-control " placeholder="First Name" type="text" ng-model="account.first_name" ng-init="account.first_name=user.account.first_name">

我的控制器中有一项服务可以返回所有用户的信息。我正在尝试在输入中显示当前的信息。

我想在输入中使用它,以便它们也可以更改(更新)它。

但是,当我从我的服务中设置我的API返回的value="{{user.account.first_name}}"并设置为$scope.user时,它在输入中没有显示任何内容。

我在SO上搜索了答案,并发现了一些建议ng-init,但仍无效。

我还尝试了ng-bindng-value,并在我设置ng-model之前将其放入。

我该怎么做?

编辑:

这是我的帐户控制器。该服务只有return $http.get('/api/account');

app.controller('AccountCtrl', function($scope, Account) {

    Account.show()
        .success(function(data) {
            $scope.user = data;
        });

data是一个JSON模式,如下所示:

{"account": {}, "documents": {}}

但是里面有数据。

2 个答案:

答案 0 :(得分:0)

从服务中获取数据后,在控制器中执行此操作

      Account.show()
     .success(function (data) {
     $scope.user = data;

     //set account.first_name here
     $scope.account = {
         first_name: $scope.user.account.first_name
     };
     //or you can use angular.copy(source, destination)
     angular.copy(data.account, $scope.account)

 });

答案 1 :(得分:0)

为什么不为自己省去头痛并将账户业务从模型中删除。我不知道它所服务的功能,只需使用用户对象即可。双重选择:

在你的控制器中: $ scope.account = angular.copy($ scope.user);