【发布时间】:2015-09-18 14:54:08
【问题描述】:
我有一个带有自定义 cart 的 angularJS 应用程序,我正在尝试使用贝宝让用户一次结帐他们的整个 cart。
HTML
<main ng-controller="CheckoutCtrl" class="prototype-paypal">
<h2 class="checkout-header">Checkout</h2>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="youremail@mail.com">
<input type="hidden" name="currency_code" value="CAD">
<div ng-repeat="item in custCart">
<input type="hidden" name="item_name_{{$index}}" value="{{item.name}}" >
<input ng-repeat="size in item.sizes track by $index" type="hidden" name="amount_{{$index}}"
value="{{size.price}}">
</div>
<input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-but01.gif" name="submit"
alt="Make payments with PayPal - it's fast, free and secure!">
</form>
</main>
我认为我使用 $index 错误,这是我的数据:
$scope.custCart = [];
$scope.templateItems = [
{
name: 'First Item',
description: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.',
src: 'http://placehold.it/150x150.gif',
type: 'Template',
sizes: [
{
size: "Small",
price: 3.99,
text: "size of item sm more details more",
numOrders: 0,
},
{
size: "Medium",
price: 5.99,
text: "size of item md more details more",
numOrders: 0,
},
{
size: "Large",
price: 7.99,
text: "size of item lg more details more",
numOrders: 0,
},
{
size: "X-Large",
price: 8.99,
text: "size of item xl",
numOrders: 0,
},
{
size: "XX-Large",
price: 10.99,
text: "size of item xxl",
numOrders: 0,
}
]
},
{
name: 'Second Item',
description: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.',
src: 'http://placehold.it/150x150.gif',
type: 'Template',
sizes: [
{
size: "Small",
price: 3.99,
text: "size of item sm ",
numOrders: 0,
},
{
size: "Medium",
price: 5.99,
text: "size of item md more details more",
numOrders: 0,
},
{
size: "Large",
price: 7.99,
text: "size of item lg more details more",
numOrders: 0,
}
],
},
{
name: 'Third Item',
description: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.',
src: 'http://placehold.it/150x150.gif',
type: 'Template',
sizes: [
{
size: "Small",
price: 3.99,
text: "size of item sm ",
numOrders: 0,
},
{
size: "Medium",
price: 5.99,
text: "size of item md more details more",
numOrders: 0,
},
{
size: "Large",
price: 7.99,
text: "size of item lg more details more",
numOrders: 0,
}
],
},
{
name: 'Fourth Item',
description: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.',
src: 'http://placehold.it/150x150.gif',
type: 'Template',
sizes: [
{
size: "Small",
price: 3.99,
text: "size of item sm ",
numOrders: 0,
},
{
size: "Medium",
price: 5.99,
text: "size of item md more details more",
numOrders: 0,
},
{
size: "Large",
price: 7.99,
text: "size of item lg more details more",
numOrders: 0,
}
],
}
];
问题是我的ng-repeat 循环由于某种原因没有显示custCart 中的第一项
【问题讨论】:
-
如果您得到任何东西,我会感到惊讶。 AngularJS 忽略隐藏的输入。
-
哦,我得到了 1 件带有价格和名称的商品.. 但它只是没有重复.. 我该如何解决你的想法?
-
啊...你没有绑定问题,问题是重复吗?
-
custCart 是什么样的?在上面的示例中,它是一个空数组,并且没有提示它是如何填充的。
-
是的,实际上我看到除了第一个项目之外的所有项目都没有出现
标签: javascript angularjs paypal