2016-12-02 9 views
0

Angular JS новый товар вопрос.Angular JS подробно поиск

Я контроллер для получения данных из базы данных:

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

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

$http.get("views/resumen.pedidos.php") 
.success(function (data) { 
    $scope.results = data; 

}); 

Эти данные отображаются в таблице:

<body ng-app="myApp"> 
    <div ng-controller="myAppCtrl" class="row top-row"> 
     <table id="data-table" border="0" width="100%" cellpadding="0" cellspacing="0" class="table panel"> 
      <thead> 
       <tr> 
        <th>PEDIDO</th> 
        <th>ESTADO WEB</th> 
        <th>FECHA</th> 
        <th>HORA</th> 
        <th>PREPARAR</th> 
        <th>CANTIDAD</th> 
        <th>PREPARADO</th> 
        <th>ENVIO</th> 
        </tr> 
       </thead> 
       <tbody> 
        <tr ng-repeat="result in results"> 
        <td>{{ result.pedido }}</td> 
        <td>{{ result.estado_web | uppercase }}</td> 
        <td>{{ result.fecha }}</td> 
        <td>{{ result.hora }}</td> 
        <td>{{ result.preparar }}</td> 
        <td>{{ result.cantidad }}</td> 
        <td>{{ result.enviado }}</td> 
        <td>{{ result.envio }} 
        </tr> 
       </tbody> 
     </table> 
    </div> 
</body> 

Я хочу, чтобы отобразить данные из другого контроллера, когда строка таблицы щелкнул , используя {{result.pedido}} в качестве значения ключа.

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

$http.get("views/detalle.pedidos.php") 
.success(function (data) { 
    $scope.results = data; 

}); 
+0

У вас есть два options. Во-первых: при щелчке по строке введите данные строки в службу и получите данные из этой службы. Два: передайте данные по URL-адресу и получите его с помощью '$ location.search();' – Isma90

ответ

0

Попробуйте воспользоваться услугой передачи данных другому контроллеру.

<tbody> 
     <tr ng-repeat="result in results" ng-click="injectDataOnService(result)"> 
       <td>{{ result.pedido }}</td> 
       <td>{{ result.estado_web | uppercase }}</td> 
       <td>{{ result.fecha }}</td> 
       <td>{{ result.hora }}</td> 
       <td>{{ result.preparar }}</td> 
       <td>{{ result.cantidad }}</td> 
       <td>{{ result.enviado }}</td> 
       <td>{{ result.envio }} 
     </tr> 
    </tbody> 

В первом контроллере установите данные в де службы:

... 
    $scope.injectDataOnService = function(data){ 
     myService.setData(data); 
    } 
... 

Функции в службе:

...  

myService.$inject = ['$q']; 

function myService($q){ 
    var myData = null; 

    return { 
     setData: setData, 
     getData: getData 
    } 

    function setData(data){ 
     myData = data; 
    } 

    function getData(){ 
     var defered = $q.defer(); 
     defered.resolve(myData); 
     return defered.promise; 
    } 
} 

Во втором контроллере, вам нужно впрыснуть обслуживание и вызов getData:

... 
myService.getData().then(function(result){ 
    datafromTable = result; 
}); 
... 

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

  • Нет связанных вопросов^_^