我如何在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>
此人的昵称显示在输入字段中,但我无法编辑它。当我开始输入时,它会被忽略。为什么呢?
答案 0 :(得分:2)
$ http.get不会将数据返回给您的模型,因为它是异步的。它返回Promise对象。您需要将结果值分配给.success()回调中的$ scope.person:
$scope.person = {};
$http.get('route', {id: personId})).success(function(response){
$scope.person = response.data;
});
请参阅documentation以及带示例的$ http