2016-12-02 60 views
0

Angular JS newbee question。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

你有两个选项,首先:单击行时,将行数据注入到服务中并从中获取数据。二:通过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> 

在第一控制器设置的数据到DE服务:

... 
    $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; 
}); 
...