1

我有一个 json 数组对象,如下所示:

[
    {
        "id": 1,
        "name": "John Smith",
        "age": 52
    },
    {
        "id": 2,
        "name": "Jane Walters",
        "age": 43
    },
    {
        "id": 3,
        "name": "Mike Wilson",
        "age": 65
    },
    {
        "id": 4,
        "name": "Tom Samuels",
        "age": 29
    }
]

我在“索引”页面上显示所有这些名称,并且我只想在每个“字符/[id]”页面上显示一个。这是我的索引页控制器:

angular.module('myApp.controllers', []).
    controller('index', ['$scope', 'characters', function($scope, c){
        $scope.characters = c.getCharacters;
    }]);

Aaand 这是“字符”服务:

factory('characters', function($resource){
    return $resource('JSON/characters.json', {}, 
    {
        'getCharacters':    {method: 'GET', isArray:true}
    }); 
});

视图是标准样板文件。

我的问题是,如何为“character/[id]”路由创建服务(或操作控制器中的对象),以便它只根据 JSON id 选择单个数组?

我在 angularjs.org 上做了 phonecat 演示,但该演示为每部手机使用单独的 JSON 文件,然后为索引页面使用一个大的 JSON 文件。我想避免这种情况。

最后一件事:我正在使用 angular-seed,所以我想保持那里使用的语法。我尝试了很多不同的方法,但都没有运气。

4

2 回答 2

1

我自己的项目中的示例:

控制器:

app.controller("prodDetalleController", ["$scope","$http","$routeParams", function($scope,$http,$routeParams ){    

  vm = this;
  $scope.id = $routeParams.idProducto;


    // Listado de productos
    $http.get("_producto.php?id="+$scope.id)
    .success(function (respuesta) 
    {
        vm.producto = respuesta;}
    )
    .error(function(){
        vm.producto = "Error: no hay datos.";
    }); 

}]); // fin ctrl

在 PHP 中:

<?php

 $id = $_GET['id'];
 //echo $id;

$conn = @new mysqli('localhost', 'root','buenosaires','martin_db');

$result = $conn->query("SELECT * FROM productos WHERE idProducto=$id");

$myArray = array();

...

并认为:

{{producto.titulo}}
{{producto.descripcion}}

...

于 2015-06-17T15:08:53.420 回答
0

基本上,您是在问如何从路由 url 获取 id。

定义您的角色路线路径,例如:

/character/:id

在你的角色控制器中

....controller('characterCtrl', ['$scope', 'characters','$routeParams' function($scope, c,$params){
    $scope.characters = c.getCharacters;
    //you have $params.id here as the id from the url
}]);

在注释行上循环通过$scope.characters找到具有匹配 id 的行并将其设置为另一个范围变量。在提供帮助时,带有当前页面/视图和控制器的 jsFiddle 可能会更有用。

于 2013-10-08T18:02:31.003 回答