这是从服务器加载列表的功能。最初会显示列表,但在应用过滤器时获得空响应时,它仍会显示以前的结果,而不会清除以前的列表。
$scope.browseListing = function (strURL) {
$scope.CurrentTab = strURL;
$scope.getURL(strURL);
$http.post($scope.URL)
.then(function (response) {
if (response.data != 'null') {
$scope.Data = response.data;
$scope.TotalListingCount = $scope.Data.length;
$window.alert('Result is not null');
}
else {
$scope.TotalListingCount = '0';
$window.alert('Result is null');
$scope.Data = [];
}
}, function (response) {
$log.info(response);
});
};
被修改
如何解决此问题,以便在空的回复中清除以前的列表并显示没有列表?
答案 0 :(得分:1)
可能是您的范围未更新。请尝试以下方法(这不是100%好方法,但此时你可以解决你的问题)
if(!$scope.$$phase) {
$scope.$apply(
$scope.Data = [];
);
}
$scope.TotalListingCount = '0';
$window.alert('Result is null');
更新 尝试这样的另一种方式(全局声明空对象)
.then(function (response) {
$scope.TotalListingCount = '0';
$scope.Data = [];
if (response.data != 'null') {
$scope.Data = response.data;
$scope.TotalListingCount = $scope.Data.length;
$window.alert('Result is not null');
}
else {
$window.alert('Result is null');
}
}
它运行不正常,请分享您的过滤器代码。 Bcs问题应该在那里。
答案 1 :(得分:0)
以下内容创建新范围,并继承原型:ng-repeat
,ng-include
,ng-switch
,ng-view
,ng-controller
,directive
和{ {1}},scope: true
与directive
。
因此,请将transclude: true
与$parent
ng-repeat`一起使用 -
'ng-repeate' to reference to parent scope instead of using newly created scope by
将<tr ng-repeat="listing in $parent.Data | orderBy : sortColumn : SortDirection">
中的$parent
添加到ng-repeat
中的范围属性后,根据更改更新UI
。