0

Я работаю над приложением angularjs и как новичок, столкнувшийся со многими проблемами. У меня две угловые сетки пользовательского интерфейса. Основываясь на пользовательском вводе в текстовых полях, он должен отображать значения в сетке пользовательского интерфейса. Нелегкое время для достижения этого. Любые предложения будут полезны. Пожалуйста, найдите демо-код моего кода here.отображение угловой сетки UI и значений на основе ввода пользователем

Когда типы пользователей/выбирают Атлант в Из текстового поля и Чикаго в To текстовое поле и нажмите на SearchLocations кнопку, он должен показать сетку со значениями отображаемых под названием AtlantaChicago. Как мудрый, когда пользователь вводит NewYork и Chicago, он должен показывать значения gird, отображаемые под именем NewYorkChicago. Если в текстовых окнах нет значений, сетка не должна отображаться. Любые предложения были бы очень полезными.

HTML код:

<body style="padding-left:15px" ng-controller="searchController"> 
    <form class="form-inline"> 

    <div class="row"> 
     <div class="form-group" ng-controller="citiesCtrl"> 
      <label>From</label> 
      <input type="text" ng-model="places1" placeholder="Type Departure City" typeahead="item for item in items | filter:$viewValue | limitTo:8"> 
     </div> 
     <div class="form-group" ng-controller="citiesCtrl"> 
      <label>To</label> 
      <input type="text" ng-model="places2" placeholder="Type Destination City" typeahead="item for item in items | filter:$viewValue | limitTo:8"> 
     </div> 
    </div> 

    <input type="submit" value="SearchLocations" ng-submit="submit()"> 
    <div ng-repeat="user in users"> 
     <h3>{{user.name}}</h3> 
     <div ui-grid="{ data: user.details }" ng-show="user.show" class="myGrid"></div> 
    </div> 

</form> 
</body> 

код расслоение плотной:

angular.module('myApp', ['ngAnimate', 'ui.bootstrap','ngTouch', 'ui.grid', 'ui.grid.selection', 'ui.grid.edit','ui.grid.cellNav']); 
     angular.module('myApp').controller('citiesCtrl',function($scope){ 
      $scope. places = undefined; 
      $scope.items = ["Atlanta", "Chicago", "NewYork"]; 
      $scope.selectAction = function() { 
       console.log($scope.places1); 

      }; 
     }); 

    /*Controller for searchLocations button*/ 
     angular.module('myApp').controller('searchController', ['$scope', function($scope) { 
      $scope.submit = function() { 
       alert("in submit"); 
       if ($scope.places1) { 
        alert("inside the condition"); 
        /*       $scope.list.push(this.places1); 
        $scope.places1 = ''; 
        */      } 
      }; 
      $scope.users = [ 
       {'name' : 'AtlantaChicago', 
        'show' : true, 
        'details' : [ 
         {"Travel Date": "10/10/2014", commute:"Bus"}, 
         {"Travel Date": "10/11/2014", commute:"flight"}] 
       }, 
       {'name' : 'NewYorkChicago', 
        'show' : true, 
        'details': [ 
         {"Travel Date": "3/15/2016", commute:"flight"}, 
         {"Travel Date": "10/12/2016", commute:"flight"}, 
        ] 
       } 
      ]; 
      $scope.gridOptions = { 
       enableFiltering: true, 
       columnDefs: [ 
        { name: 'Travel Date', width: '5%'}, 
        { name: 'Departurecommute', enableFiltering: false, width: '12%' } 
       ], 
       rowHeight: 20, 
       enableHorizontalScrollbar:2 

      }; 
     }]); 

ответ

0

Вам нужно определить places в родительской области - searchController. В этом случае ваши дети (citiesCtrl) наследуют их и изменяют при изменении модели, поэтому вы сможете получить доступ к измененному значению с помощью вызова submit() в родительском. В противном случае каждый citiesCtrl создаст свою собственную переменную places.

Here is your updated example