Динамическое обновление углового вида на основе http-запроса

0

Я начинаю с угловатым, и я пытаюсь обновить представление на основе HTTP-запроса.

$scope.update = function(id){
      switch (id) {
        case 1:
        $http.get(Backand.getApiUrl() + '/1/objects/details')
        .then(function(response) {
            $scope.details = response.data.data[0];
            $rootScope.locName = response.data.data[0].locationName;
            $rootScope.locSubTitle = response.data.data[0].locationSubTitle;
            $rootScope.locParagraph = response.data.data[0].locationParagraph;
            $rootScope.locGluten = response.data.data[0].glutenfrei;
            $rootScope.locRaucher = response.data.data[0].raucher;
            $rootScope.locGarten = response.data.data[0].garten;
            $rootScope.locTakeAway = response.data.data[0].takeaway;
            $rootScope.locRollstuhl = response.data.data[0].rollstuhl;
            console.log($rootScope.locGluten);
        });
        break;
          case 2:
          $http.get(Backand.getApiUrl() + '/1/objects/details')
          .then(function(response) {
            $rootScope.locName = response.data.data[1].locationName;
            $rootScope.locSubTitle = response.data.data[1].locationSubTitle;
            $rootScope.locParagraph = response.data.data[1].locationParagraph;
            $rootScope.locGluten = response.data.data[1].glutenfrei;
            $rootScope.locRaucher = response.data.data[1].raucher;
            $rootScope.locGarten = response.data.data[1].garten;
            $rootScope.locTakeAway = response.data.data[1].takeaway;
            $rootScope.locRollstuhl = response.data.data[1].rollstuhl;

          });
            break;
        default:

      }
    }


    $scope.goToDetail = function(id) {
      $state.go("detail")
      $scope.update(id);

    }

HTML

<div ng-repeat="cat in content" class="animated lightSpeedIn">
      <a ng-click="goToDetail(cat.id)" nav-transition="none"><div ng-style="{'background': 'url(' + cat.catBgUrl + ')','background-repeat': 'no-repeat','background-size': '100% 100%','display': 'block','width': '100%','height': '25vh' }" class="bgcat center">
        <div class="inner">
          <h1>{{cat.catName}}</h1>
          <h4>{{cat.catSubtitle}}</h4>
          <img src="img/home/open.png" alt="">
        </div>
      </div></a>
    </div>

Я знаю, что это плохой код, но мои мысли состояли в том, чтобы перейти к сведениям о состоянии и запустить обновление функции с идентификатором записи. Затем перейдите через идентификатор и обновите представление, основанное на щелкнутом элементе.

Код работает нормально, но я думаю, что есть намного лучший способ сделать это, и мне нужно его динамически.

Я действительно застрял в этом и хотел бы сделать это правильно. Как это сделать? Можете ли вы дать мне подсказку, пожалуйста?

  • 0
    пожалуйста, предоставьте объект кошка
  • 0
    кошка является JSON-данными
Показать ещё 6 комментариев
Теги:
ionic-framework

1 ответ

2
Лучший ответ
for codes relating to data it is better to use services for separation.

**Your service**

пусть app будет вашим угловым модулем

app.service('detailService',function($http){
    var update = function(id,callback){
        switch (id) {
            case 1:
               $http.get(Backand.getApiUrl() + '/1/objects/details')
               .then(function(response) {
                   callback(response,0);
               });
            break;
            case 2:
               $http.get(Backand.getApiUrl() + '/1/objects/details')
               .then(function(response) {
                   callback(response,1);
               });
            break;
    };
});

**Your controller**

app.controller('myCtrl',function($scope,$state,detailService){
    detailService.update(id,function(response,index){
        $scope.response = response;
        $scope.index = index;
        $state.go("detail"):
    });
});

**You can display the response as**

<p>Details : {{response.data.data[{{index}}]}}</p>
<p>Location Name : {{response.data.data[{{index}}].locationName}}</p>
  • 0
    Большое спасибо, что уже очень помогли! Можете ли вы дать мне подсказку, как я могу увеличить местоположение массива данных? Например, когда идентификатор равен 1, тогда response.data.data [0] .locationName, когда идентификатор равен 2, тогда response.data.data [1] .locationName
  • 0
    Я изменил источник. Не могли бы вы проверить это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню