我正在使用我的第一個項目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