使用 Angular 工厂和 lodash 从 JSON 检索一个对象

Retrieving one object from JSON using Angular factory and lodash

我在本地存储了一个名为 "Productos" 的 JSON,并使用 UI-router 传入一个 $stateParams,然后使用它通过其唯一 ID 查找该对象新页面的控制器和在多个控制器之间共享的工厂。

现在我的控制台检索传递给工厂函数的正确 ID 号,但是一旦将相同的编号传递给 lodash 的 _.find,控制台简单地显示一个现有的 [object Object],因此 _.find 始终 returns 未定义。奇怪的是,当我尝试 console.log _.find 中的 productos 数组时,它也只是 returns 一个巨大的 [object Object] 列表。我哪里错了?

.controller('DetalleProductoController',
    ['$scope', '$stateParams', 'Productos', 
        function ($scope, $stateParams, Productos) { 

            console.log($stateParams);
            // Recibir el producto por id pasado.
            $scope.producto = Productos.findById($stateParams.id);
            console.log($scope.producto);

}])

以及正在使用和调用的服务...

angular.module('MyApp.Services', []);

MyApp.factory('Productos', function (){

    console.log("In Producto Service");

    var productos = [{
        "stockid":"01000001",
        "Nombre":"Articulo 1",
        "Descripcion":"",
        "Precio":140,
        "PrecioAnterior":0,
        "EtiquetaPrecio":"",
        "Puntos":0,
        "Familia":"001",
        "Grupo":"01",
        "Clase":"",
        "Destacado":"N",
        "Etiquetas":"",
        "Rubro":"01",
        "TipoArticulo":""},
    return { 

        todos: function() {
            console.log("Returning Products from local Service");
            return productos;
        },

        destacados: function() {
            return _.filter(productos, function (producto) {
                return producto.Destacado == "S";
            })
        },

        findById: function (ProductoId) {
            console.log("Id passed into factory: " + ProductoId);

                return _.find(productos, function (ProductoId){
                    console.log("id inside the find block is: " + ProductoId);
                    return parseInt(productos.stockid) == parseInt(ProductoId); 
            });
        }
    }

});

传入_.find函数的变量是集合中的元素之一,不是ID。

所以我觉得应该是这样的:

findById: function (ProductoId) {
  return _.find(productos, function (producto) {
    return parseInt(pruducto.stockid) === parseInt(ProductoId);
  });
}