调用angularjs控制器方法后模板不更新。
调用angularjs控制器方法后模板不更新。
在使用控制器方法进行搜索后,我无法更新模板。
我有一个控制器,它可以将数据列出到模板中,如果没有进行搜索的话,是正确的。数据是从一个服务中检索出来的。
当我按月份和来源进行搜索时,在调用搜索方法后在console.log中的结果是正确的数据,但是HTML模板没有显示这些数据,它显示了未过滤的数据。
我尝试返回$scope.data,或者使用$scope.apply,但都没有起作用。
如何使用过滤后的数据更新模板?
具有搜索方法的控制器:
.controller('AcpCtrl', function($scope, ApiAcpFactory, $ionicLoading, $timeout, $http) { $scope.data = null; $ionicLoading.show({noBackdrop: true,template: '搜索中...'}); ApiAcpFactory.getApiData() .then(function(result) { var acp = {}; acp.resultdata = [ result ]; $scope.data = acp.resultdata; $ionicLoading.hide(); }) $scope.search = function(data) { $scope.data = null; $scope.formData = {}; $scope.formData.month = data.month; $scope.formData.origin = data.origin; $ionicLoading.show({noBackdrop: false,template: '搜索中'}); ApiAcpFactory.getApiData($scope.formData) .then(function(result) { $scope.data = JSON.stringify(result); console.log(' scope.data '+$scope.data); $ionicLoading.hide(); }) return $scope.data; } })
工厂:
.factory('ApiAcpFactory', function($http, $q, ApiAcpEndpoint) { var getApiData = function(data) { var q = $q.defer(); $http.post(ApiAcpEndpoint.url,data) .success(function(data) { q.resolve(data); }) .error(function(error){ console.log('发生错误'+error) q.reject(error); }) return q.promise; } return { getApiData: getApiData }; })