2015-11-04 4 views
1

Я создаю некоторые divs, используя ng-repeat.Как получить значение в другом контроллере - Угловой JS

См код ниже:

.controller('meditationsController', function ($scope, $state, $rootScope, $http) { 
 
    var req = { 
 
     method: 'POST', 
 
     url: 'http://example.com/demo/', 
 
     headers: { 
 
      'Content-Type': 'application/json' 
 
     } 
 
    } 
 
    // Call API 
 
    $http(req).then(function(result) { 
 
     var rawData = result.data; 
 
     $scope.meditationByCategory = {}; 
 
     for (var i = 0; i < rawData.length; i++) { 
 
      var meditation = rawData[i]; 
 
      if ($scope.meditationByCategory[meditation.main_title] == undefined) { 
 
      $scope.meditationByCategory[meditation.main_title] = {}; 
 
      $scope.meditationByCategory[meditation.main_title].name = meditation.main_title; 
 
      $scope.meditationByCategory[meditation.main_title].meditations = []; 
 
      
 
      } 
 
      $scope.meditationByCategory[meditation.main_title].meditations.push(meditation); 
 
     } 
 
    }); 
 
    })
<div ng-repeat="(categoryName, category) in meditationByCategory"> 
 
     <div class="peacefulness"><p class="para-text">{{category.name}}</p></div> 
 
     <a href="" ng-click="goToDetailPage()" class="customlink"> 
 
     <div class="item-content" ng-repeat="meditation in category.meditations"> 
 
      <span class="leftSpanStyle">{{meditation.title}}</span> 
 
      <span class="rightSpanStyle"> 
 
      <i class="icon ion-ios-information-outline icon-size"></i> 
 
      </span> 
 
     </div> 
 
     </a> 
 
    </div>

Я успешно создал список дивы динамически в зависимости от ответа службы.

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

, пожалуйста, помогите мне связать данные в другую страницу ..

+2

Создайте угловое обслуживание/завод, который обновляется при каждом нажатии. На следующем Контроллере страницы используйте эту Службу как зависимость, и у вас есть то, что вы хотите. –

+0

спасибо, Брат, я постараюсь. – user3884692

+0

Это немного шире, вы знаете, что вам нужна услуга, и вы не просите о помощи при возникновении проблемы при реализации вашего сервиса. Это похоже на то, что вы просите кого-нибудь написать всю услугу. – Malkus

ответ

0

Добавьте кнопку на ваш взгляд. Что-то вроде:

<span class="rightSpanStyle"> 
    <i class="icon ion-ios-information-outline icon-size"></i> 
    </span> 
    <button ng-click="doSomeThing($index)"></button> 

И в контроллере:

$scope.doSomeThing = function(index){ 
    //do something with category.meditations[index] 

    //or go to another state: $state.go("myState", {item: category.meditations[index]}) 
} 

Edit:

Как вы говорите «хотят привязать к следующей странице» Я предполагаю, что вы хотите, чтобы перейти к другому стр. Предполагая также, что вы делаете это, используя углы ui-router, это означает, что вы хотите изменить состояние. В этом случае не забудьте указать:

url: /myUrl/:item 

для этого состояния. Вы можете получить доступ к элементу в целевом состоянии/контроллере с помощью $stateParams.item

+0

вы должны упомянуть, что вы «рекомендуете»/«используете» ui-router здесь, а не нативный угловой –

+1

Справа от вас! Изменит мой ответ. –

Смежные вопросы