Javascript API 问题
Javascript API issue
我目前有这个
<option ng-id="1186384773090640435" value="1186384956868264500">Product Name</option>
我需要同时获取 id 和 value 并将其插入到下面:
moltin.Cart.Insert($scope.productId, qty, { "1186384773090640435" : { "1186384956868264500" : 1} }, function (cart) {
我该怎么做?
我目前正在做类似的事情,但它不起作用:
modi = $(this).attr('ng-id');
vari = $(this).attr('value');
moltin.Cart.Insert($scope.productId, qty, { modi : { vari : 1} }, function (cart) {
我可以假设它是因为值不是字符串或对象。不太确定。
创建对象文字时不能使用变量值作为对象属性名称(除非您正在编写 ES20015)。您将需要类似的东西:
modi = $(this).attr('ng-id');
vari = $(this).attr('value');
((insert = {})[modi] = {})[vari] = 1
moltin.Cart.Insert ($scope.productId, qty, insert, function ( ...
解释:
在第三行中,我们首先将一个名为insert
的变量设置为一个空对象(insert = {})
。我们向该对象添加一个属性,其名称为变量 modi
的值,其值为空对象:( ...[modi] = {})
。该空对象又被赋予一个属性,其名称为 vari
的值,其值为 1。整个表达式 returns 的值为 1 这解释了为什么我们需要设置一个变量名来引用第一个创建的对象。
Javascript 很随和 ;-)
或者(三行一个变量):
let insert = {};
(insert[$(this).attr('ng-id')] = {})[$(this).attr('value')] = 1
moltin.Cart.Insert ($scope.productId, qty, insert, function ( ...
在 ES2015 (ES6) 中,您可以直接将其编码为:
moltin.Cart.Insert ($scope.productId, qty, {[modi]: {[vari]: 1}}, function ( ...
我目前有这个
<option ng-id="1186384773090640435" value="1186384956868264500">Product Name</option>
我需要同时获取 id 和 value 并将其插入到下面:
moltin.Cart.Insert($scope.productId, qty, { "1186384773090640435" : { "1186384956868264500" : 1} }, function (cart) {
我该怎么做?
我目前正在做类似的事情,但它不起作用:
modi = $(this).attr('ng-id');
vari = $(this).attr('value');
moltin.Cart.Insert($scope.productId, qty, { modi : { vari : 1} }, function (cart) {
我可以假设它是因为值不是字符串或对象。不太确定。
创建对象文字时不能使用变量值作为对象属性名称(除非您正在编写 ES20015)。您将需要类似的东西:
modi = $(this).attr('ng-id');
vari = $(this).attr('value');
((insert = {})[modi] = {})[vari] = 1
moltin.Cart.Insert ($scope.productId, qty, insert, function ( ...
解释:
在第三行中,我们首先将一个名为insert
的变量设置为一个空对象(insert = {})
。我们向该对象添加一个属性,其名称为变量 modi
的值,其值为空对象:( ...[modi] = {})
。该空对象又被赋予一个属性,其名称为 vari
的值,其值为 1。整个表达式 returns 的值为 1 这解释了为什么我们需要设置一个变量名来引用第一个创建的对象。
Javascript 很随和 ;-)
或者(三行一个变量):
let insert = {};
(insert[$(this).attr('ng-id')] = {})[$(this).attr('value')] = 1
moltin.Cart.Insert ($scope.productId, qty, insert, function ( ...
在 ES2015 (ES6) 中,您可以直接将其编码为:
moltin.Cart.Insert ($scope.productId, qty, {[modi]: {[vari]: 1}}, function ( ...