我在后端有一个对象。这就是我将这些对象发送到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
答案 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]});