我正在使用我的第一个项目Angularjs 1.4.3。如何在http调用后在视图中更新范围变量值?
以我控制器我正在HTTP请求,在该HTTP请求的成功方法我更新一个范围可变。在http调用中,我获取最新值,但在视图方面它没有更新值。
Plunker Link(@rupesh_padhye谢谢)。 (因为它是调用的servlet动作,所以没有数据将被在Plunker示出)
app.controller('measuresCtrl', ['$scope', '$modal', '$http', function($scope, $modal, $http) {
$scope.groups = []
$scope.loadAllMeasure = function() {
$http.get("fetchAllMeasure")
.success(function(data) {
console.log("Before insert");
console.log($scope.groups);
$scope.groups = data.measures;
console.log("After insert");
console.log($scope.groups);
})
.error(function() {
});
};
$scope.loadAllMeasure();
$scope.submit = function (form) {
$http({
method: 'POST',
url: 'saveMeasure',
data: {
id: form.id,
name: form.name,
description: form.description
},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(data, status, headers, config) {
$scope.loadAllMeasure();
}).error(function(data, status, headers, config) {
});
}
})
每当我的措施执行任何CRUD操作我打电话的方法$scope.loadAllMeasure();
。但它不更新视图(jsp)页面中的值。
我试过$ scope。$ apply method,但是我得到Error: $digest already in progress
。
当我使用的console.log内部成功方法,则打印的值为$ scope.groups其示出的最新值。
在我的看法(jsp)页面我只使用ng-repeat函数以表格格式显示所有记录。
代码为我的视图页面(最少的代码) -
<div ng-repeat="group in groups | orderBy:'name'">
<div>
<input type="checkbox" id="checkbox-{{group.id}}" class="ui-checkbox" /><label for="checkbox-{{group.id}}">{{group.name}}</label>
</div>
<div>{{ group.description}}</div>
<div>
<div class="fa fa-pencil button" data="{{group.id}}" id="{{::elementId}}" ng-click="showEditForm(group.id, $event)"></div>
<div class="fa fa-trash button" data="{{group.id}}" ng-click="deleteGroup(group.id)"></div>
<div class="fa fa-clone button" data="{{group.id}}" id="{{::elementId}}" ng-click="showCloneForm(group.id, $event)"></div>
</div>
</div>
价值观的console.log被
Before insert
Object { id=1, description="Measure Description1", name="Demo"}]
而且
After Insert
[Object { id=1, description="Measure Description1", name="Demo"}, Object { id=2, description="Description2", name="Demo2"}]
如何更新小号在http调用之后应付变量值?
你并不需要更新范围变量,'$ http'会自动完成 – Satpal
那么,为什么它的显示旧值鉴于? – Deepu
你可以发布视图吗? – Satpal