2016-04-05 3 views
1

Итак, я смог выбрать Элементы моего списка, но цель состоит в том, чтобы передать данные выбранного списка в другом/маршруте, когда я нажимаю на него. Мне понадобится немного помощи, потому что я действительно не знаю, как продолжить, пожалуйста. Если вы знаете примеры Punker, не стесняйтесь сказать мне :)ng-click: передать данные selectedItem между страницами angularjs

пыльник мой optionSuggestionController

app.controller('optionSuggestionController', ['$scope', '$http', function($scope, $http) { 

    $http.get('suggestions.json') 
     .then(function(res){ 
      $scope.suggestions = res.data;     
     }); 

    $scope.setMaster = function(suggestion) { 
     $scope.selected = suggestion; 
    } 

    $scope.isSelected = function(suggestion) { 
     return $scope.selected === suggestion; 
    } 
}]) 

пыльник мой список данных

<ul class="list-holder"> 
    <li ng-repeat="suggestion in suggestions" ng-class="{active : isSelected(suggestion)}"> 
     <a ng-click="setMaster(suggestion)">{{suggestion.fromto}}</a> 
    </li> 
</ul> 

Беллоу мои предложения .json

[{ "fromto": "Dublin to London", "img": "http://placekitten.com/100/100" }, 
    { "fromto": "Dublin to Paris", "img": "http://placekitten.com/100/100" }, 
    { "fromto": "Dublin to Mexico", "img": "http://placekitten.com/100/100" }] 
+0

Мы должны знать, что объект 'sugestion' выглядит, но я имею в вид, если вы используете Состояние обслуживание вы можете одну и ту же услугу между двумя контроллерами и затем доступом ем щелкнули sugestion через stateService :) – MoshMage

ответ

0

Вы можете использовать Службу или Фабрику для обмена данными между контроллерами, я создаю фабрику с вашими кодами и назову ее на управляющий элемент.

app.controller('optionSuggestionController', function ($scope, $filter, $timeout, $timeout, $http, testFactory) { 

      testFactory.get(function (resp) { 
       console.log(resp); 
       $scope.suggestions = resp; 
      }); 
    }); 


    app.factory('testFactory', function ($http) { 
     var databaseFactory = {}; 
     databaseFactory.get = function (callback) { 

      return $http.get('suggestions.json').then(function (response) { 
       databaseFactory.returnedData = response.data; 
       callback(databaseFactory.returnedData); 
      }); 
     } 
     return databaseFactory; 
    }); 
+0

Спасибо @Amir, именно то, что мне было нужно, я буду работать над этим – maevy

2

Я думаю, вы можете использовать $ rootScope провайдера.

$rootScope.selected = suggestion; 

Вы можете получить доступ к этим данным в другом контроллере.

Надеюсь, это поможет.

1

У меня есть два предложения:

  • Вы можете использовать поставщика '$ rootScope.

    $ rootScope.selected = предложение;

  • Или получить параметр по URL-адресу провайдера '$ route'.

    var suggestion = $ route.current.params.suggestion;

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