ng重复搜索后不更新
ng-repeat not updating after search
我有一个Ionic应用程序正在开发中,我遇到了一个不寻常的错误。我有一个主要的"作业"模板,当前用户将看到分配给他们的所有作业:
<ion-view cache-view="false" ng-controller="JobsCtrl">
<ion-content>
<ion-list>
<ion-item ng-repeat="job in jobs" class="item-icon-right item-text-wrap">
<a href="#" style="text-decoration:none; color: #444;" ng-click="loadJob(job.JobId)">
{{job.JobId}} - {{job.Surname}} - {{job.Suburb}} - {{job.JobType}}<i class="icon ion-chevron-right icon-accessory"></i>
</a>
</ion-item>
</ion-list>
</ion-content>
</ion-view>
此视图已填充,如下所示:
$http.get(ApiEndpoint.url + '/GetJobs').then(function (resp) {
$scope.jobs = resp.data;
$ionicLoading.hide();
}, function (err) {
//console.error('ERR', err);
// err.status will contain the status code
});
模板顶部有一个搜索框,当它被激发时,只需获取一个以搜索字符串为参数的新作业列表:
var searchText = $scope.data.SearchText;
$ionicLoading.show({
template: '<p>Searching...</p><ion-spinner></ion-spinner>'
});
$http.get(ApiEndpoint.url + '/GetJobs/' + encodeURIComponent(searchText)).then(function (resp) {
$timeout(function () {
$scope.jobs = resp.data;
});
$ionicLoading.hide();
}, function (err) {
$ionicLoading.hide();
//console.error('ERR', err);
// err.status will contain the status code
});
然而,当$scope.jobs被分配新数据时,离子列表没有更新。我知道GET是成功的(通过数据包嗅探器)。我已经做了很多搜索来寻找答案(因此产生了$timeout调用)——我还尝试过应用$scope$apply();直接在$scope.jobs=resp.data;之后;正如一些网站所暗示的那样,运气不佳。关于如何让它正确地重新加载ng重复,有什么想法吗?
试试这个变体,我是否也建议不要使用$scope引用。包括$scope引用,但使用"this"而不是$scope。如果需要,将在包含搜索输入区域时更新代码。
示例控制器:
function ExampleCtrl ($scope) {
var vm = this;
//I think this should formatted differently.
var searchText = $scope.data.SearchText;
//Maybe like this.
vm.data = {};
//then vm.data.SearchText will be included from the view model. just make sure to include on html like so, jobs.data.SearchText
$ionicLoading.show({
template: '<p>Searching...</p><ion-spinner></ion-spinner>'
});
$http.get(ApiEndpoint.url + '/GetJobs/' + encodeURIComponent(searchText)).then(function (resp) {
$timeout(function () {
vm.jobs = resp.data;
});
$ionicLoading.hide();
}, function (err) {
$ionicLoading.hide();
//console.error('ERR', err);
// err.status will contain the status code
});
ExampleCtrl.$inject = ['$scope'];
angular
.module('example')
.controller('ExampleCtrl', ExampleCtrl);
<ion-view cache-view="false" ng-controller="JobsCtrl as jobs">
<ion-content>
<ion-list>
<ion-item ng-repeat="job in jobs.jobs" class="item-icon-right item-text-wrap">
<a href="#" style="text-decoration:none; color: #444;" ng-click="loadJob(job.JobId)">
{{job.JobId}} - {{job.Surname}} - {{job.Suburb}} - {{job.JobType}}<i class="icon ion-chevron-right icon-accessory"></i>
</a>
</ion-item>
</ion-list>
</ion-content>
</ion-view>
搜索输入更新:
<ion-header-bar style="background-color: transparent; " class="item-input-inset">
<form ng-submit="jobs.submitSearch()">
<label class="item-input-wrapper"> <i class="icon ion-search placeholder-icon"></i>
<input type="search" placeholder="Search" ng-model="jobs.data.SearchText"> </label>
</form>
相关文章:
- Angular JS根据搜索结果和点击事件更新DOM元素
- GoogleMapsForRails-只有在搜索结果发生变化时才通过ajax更新标记
- ng重复搜索后不更新
- 4下拉菜单,在搜索之前根据选择更新每个菜单
- 在Backbone Collections中搜索,使用React更新UI
- 如何更新单词列表中搜索框中包含用户键入内容的单词/字母数
- 在验证Symfony2中的搜索表单后更新AngularJS范围
- 弹性搜索更新文档类型
- AJAX 自动完成列表在搜索词更改时更新时出现问题
- 当搜索筛选器值从javascript更改时,智能表不会更新
- 如何使用图形API查询公共facebook事件?[更新的搜索]
- jquery搜索表单元格->更新相邻小区
- 分页确实'搜索时无法更新
- javascript/jQuery:搜索和更新对象数组的最有效方法
- 在json对象中搜索元素以更新/添加该对象中的一些数据
- HTML视图在搜索(ajax)更新期间丢失状态
- 搜索源阻止运行应用程序后,从流星1.1更新到流星1.2
- 更新后的弹性搜索查询返回旧的未更新的文档
- 搜索一个文档并更新子文档的一些字段
- Asp.net MVC动态WEBGRID搜索所有列,然后在同一视图中更新WEBGRID