【发布时间】:2017-01-24 13:43:37
【问题描述】:
我正在开发一个小型应用程序,我希望仅在使用 angularjs 中的 ngResource 选择国家/地区时才呈现城市列表。现在我可以渲染国家和城市的列表,这会使我的系统变慢并且有时会冻结我的应用程序(主要是在 ios/Safari/iphone/ipad 中)。我能够在 html 中创建过滤器,但我的问题是当我第一次打开我的应用程序时首先下载城市列表然后它被过滤。我希望能够阻止 ngResource 呈现城市列表,直到选择特定国家。下面是我的代码,我希望有人能回答这个问题,因为我有很多用户抱怨他们的手机和 ipad 在下载我的应用程序时冻结。
提前致谢。
services.js:
.factory('Country', ['$resource', function($resource){
return $resource('/api/location/countries:id/');
}])
.factory('City', ['$resource', function($resource){
return $resource('/api/location/cities:id/');
}])
controllers.js:
$scope.countries = [];
Country.query(function(response){
$scope.countries = response;
});
$scope.cities = [];
City.query(function(response){
$scope.cities = response;
});
html:
<div class="form-group">
<label ng-model="country" class="formlabel col-sm-4 control-label">Country</label>
<div class="col-sm-8 formbox" ng-model="country">
<select class="form-control" ng-model="country" ng-change="user.country=country" ng-options="country.country for country in countries track by country.id" id="country" name="userRegisterCountry" required>
<option value="">-- Choose Country --</option>
</select>
</div>
<div class="form-group">
<label ng-model="city" class="formlabel col-sm-4 control-label">City</label>
<div class="col-sm-8 formbox" ng-model="city">
<select class="form-control" ng-model="city" ng-change="user.city=city" ng-options="city.city for city in cities | filter: {country:country.id} track by city.id" id="city" name="userRegisterCity" required>
<option value="">-- Choose City --</option>
</select>
</div>
【问题讨论】:
标签: javascript html ios angularjs