Angularjs形式是只读的。为什么?

时间:2013-08-09 17:56:46

标签: javascript angularjs

我如何在html中定义我的应用程序:

<div ng-app="md-app">
    <div id="general">
        <ng-include src="template1" ng-controller="GeneralCtrl"></ng-include>
    </div>
</div>

从休息中取出一个人并设置模板的js:

function GeneralCtrl($scope, $http, $location) {
    $scope.template1 = 'some_path';

    $scope.person = $http.get('route', {id: personId})).then(function(response){
        return response.data;
    }); 
}

在模板中我可以读取所有数据。我有一个表单来编辑该人的某些数据,但默认情况下该表单是只读的:

 <form>
     <div class="form-group">
         <input type="text" class="form-control" ng-model="person.nick"/>
     </div>
 </form>

此人的昵称显示在输入字段中,但我无法编辑它。当我开始输入时,它会被忽略。为什么呢?

1 个答案:

答案 0 :(得分:2)

$ http.get不会将数据返回给您的模型,因为它是异步的。它返回Promise对象。您需要将结果值分配给.success()回调中的$ scope.person:

$scope.person = {};
$http.get('route', {id: personId})).success(function(response){
    $scope.person = response.data;
});

请参阅documentation以及带示例的$ http