从NodeJS获取对象到AngularJS

时间:2018-03-05 16:21:10

标签: javascript angularjs

我在后端有一个对象。这就是我将这些对象发送到html的方式

res.render('product', {title:title, allCategories : allCategories, product : product[0]})

我需要将产品对象发送到angularJs,以便我可以使用它进行一些操作。产品有多种颜色。我需要使用angularjs在下拉菜单中列出它们。

    <div id='image' ng-controller="productColor">
      <select>             
          <option value="color" ng-repeat="color in colors">{{color}}</option>
      </select>     
    </div>

这是我的angularjs

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

app.controller('productColor',['$scope', '$http', function($scope,$http) {
    var url = 'http://localhost:3000/mens/mens-clothing/mens-clothing-suits/25604524'
    $http.get(url).then(function(response) {  

        $scope.colors = response.product
        console.log(response.product)
    });

}]);

我编了那个网址。但是当我去那个网址时,第一部分开始了。

由于

-Edit:response.product返回undefined

1 个答案:

答案 0 :(得分:1)

在角度代码中,您正在创建一个在其第一个索引处具有数组的数组:

$scope.colors = [
    response.product.colors
]

将该位更改为

$scope.colors =  response.product.colors;

它应该适合你:

app.controller('productColor',['$scope', '$http', function($scope,$http) {
    var url = 'http://localhost:3000/mens/mens-clothing/mens-clothing-suits/25604524'
    $http.get(url).then(function(response) {  
        console.log(response.data)
        console.log(response.product)

        $scope.colors = response.product.colors;
    });

}]);
<div id='image' ng-controller="productColor">
      <select>             
           <option value="color" ng-repeat="color in colors">{{color}}</option>
      </select>     
</div>

您目前正在尝试使用此代码将数据作为JSON发送到角度脚本:

res.render('product', {title:title, allCategories : allCategories, product : product[0]})

但这不会创建JSON格式的响应。正如Express Documentation所说:

  

呈现视图并将呈现的HTML字符串发送到客户端。

您要使用的是json()对象

res方法
  

发送JSON响应。此方法使用JSON.stringify()发送响应(具有正确的内容类型),该响应是转换为JSON字符串的参数。

代码如下所示:

res.json({title:title, allCategories:allCategories, product:product[0]});