Общий фильтр для двух разных маршрутов

var app = angular.module("myApp", ['ngRoute', 'ngSanitize']);

app.controller('landingPageController', function($scope) {
  $scope.countries = [{
    name: "India",
    Id: "1"
  }, {
    name: "Nepal",
    Id: '2'
  }];
});

У меня одинаковые критерии фильтра на двух различий. Страницы в угловых, поэтому я использовал один контроллер с 2-мя маршрутами и двумя diff. HTML для части фильтра. Мне нужно, если я выберу любую страну на домашней странице, тот же выбор должен быть отражен на странице о (вместо того, чтобы снова выбрать ту же страну). Я имею в виду, что это должен быть общий фильтр на 2 страницах, а не отдельный.

Вот URL: http://plnkr.co/edit/VMYYBDy4doWCzUa4d6Uq?p=preview

нужна помощь, чтобы разобраться...

1 ответ

Решение

Вы можете обмениваться данными между различными контроллерами (или разными экземплярами одного и того же контроллера), используя, например, services, Так в вашем scotchApp (звучит вкусно, кстати!) вы могли бы иметь что-то вроде

scotchApp.service('countryService', function() {
  var current;

  return {
    // set selected country
    set: function(country) {
      current = country;
      console.log('set', current);
    },
    // get selected country
    get: function() {
      console.log('get', current);
      return current;
    }
  };
}); 

И ваш mainController как

scotchApp.controller('mainController', function($scope, countryService) {
  $scope.countries = [{
    name: 'India',
    id: 1 // note the property casing here
  },{
    name: 'Nepal',
    id: 2
  }];

  // get selected country      
  $scope.selectedCountry = countryService.get();

  // set selected country
  $scope.set = function(country) {
    countryService.set(country);
  };
});

И template для ваших маршрутов

<div>
  <select ng-options="country.name for country in countries track by country.id" 
          ng-model="selectedCountry"
          ng-change="set(selectedCountry)">
    <option value="">Select country</option>
  </select>
</div>

Это должно сделать это.

Другие вопросы по тегам