Всем привет.
Вопрос такой. Есть мобильное приложение (ionic). Так как он напрямую работать с БД не может, сервер отдает json с нужными параметрами.
В приложении он записывается в файл resource.json
Как можно сделать так, что бы уже запакованное в апк приложение получало и обновляло новые значения?
П.с Комменты типа пиши на нативе - не приветствуются, я бы с радостью, но заказчик дал ТЗ и надо делать
Передает такие значения -
{
"categories": [
{
"id": 11,
"title": "Chocolate",
"items": [1,2,3,4,5,6,7,8,9,10,11,12]
},
"items": [
{
"id": 12,
"title": " Elegance Dark Chocolate",
"article": "R-004",
"description": "Cocoa content: 60%",
"img": "img/content/products/Elegance_Dark_60.png",
"item_weight": "100",
"pack_weight": "4",
"packing": "40 x 168bags",
"alcohol": false,
"ingredients": "",
"dimensions": "315x240x117",
"time": "18 months",
"store": "Keep in a cool dry place."
},
В приложении вызывается вызываю так.
<h3 class="search-results padding-horizontal" ng-show="filter.query">Search results for "{{filter.query}}":</h3>
<div ng-repeat="cat in getCategories() | filter: categoryFilter track by cat.id" class="item-divider">
<h1>{{cat.title}}</h1>
<ion-list show-delete="shouldShowDelete"
show-reorder="shouldShowReorder"
can-swipe="listCanSwipe"
class="list-borderless">
<ion-item ng-repeat="(id, item) in getItems(cat.items) | filter : itemsFilter | orderBy : filter.orderBy"
ng-class="{expanded: isExpanded(item.id)}">
<div class="row" ng-click="expandItem(item.id, true)">
<div ng-class="{'col-50': isExpanded(item.id), 'col-33': !isExpanded(item.id)}">
<img class="added" src="img/ic_added_green_36dp.svg" ng-show="inOrder(item.id)">
<!--<i class="icon added" ng-show="inOrder(item.id)"></i>-->
<img ng-src="{{item.img}}">
</div>
<div ng-class="{'col-50': isExpanded(item.id), 'col-67': !isExpanded(item.id)}">
<span class="article">{{item.article}}</span>
<h3>{{item.title}}</h3>
<p>{{item.description}}</p>
<p class="packaging" ng-hide="isExpanded(item.id)">
<i class="icon calm ion-cube"></i>
{{item.packing}}
</p>
</div>
</div>
<div class="detail" ng-show="isExpanded(item.id)">
<dl class="row">
<dt class="col-50">Ingredients:</dt>
<dd class="col-50" ng-bind-html="nl2br(item.description)"></dd>
</dl>
<div class="row spec">
<div class="col">
<i class="icon calm ion-cube"></i>
{{item.packing}}
</div>
<div class="col">
<i class="icon calm ion-arrow-resize"></i>
{{item.dimensions}}
</div>
<div class="col">
<i class="icon calm ion-android-time"></i>
{{item.time}}
</div>
</div>
$scope.getCategories = function() {
return $scope.categories.filter(function(item) {
if ($scope.filter.enableCategories && $scope.filter.categories.length) {
return $scope.filter.categories.indexOf(item.id) !== -1;
}
return true;
});
};
$scope.getItems = function(id) {
if (!angular.isArray(id)) {
id = [id];
}
$scope.filter.ids = id;
return $scope.items.filter(function (item) {
return $scope.filter.ids.indexOf(item.id) !== -1;
});
};
.factory('DataProvider', function($http, $q) {
var data = [];
return {
all: function(){
var dfd = $q.defer();
$http.get("resource.json").then(function(response){
data = response.data;
dfd.resolve(data);
});
return dfd.promise;
}
}
})