Javascript API问题

Javascript API问题,javascript,json,moltin,Javascript,Json,Moltin,我现在有这个 <option ng-id="1186384773090640435" value="1186384956868264500">Product Name</option> 我该怎么做 目前我正在做类似的事情,但不起作用: modi = $(this).attr('ng-id'); vari = $(this).attr('value'); moltin.Cart.Insert($scope.productId, qty, { modi : { vari

我现在有这个

<option ng-id="1186384773090640435" value="1186384956868264500">Product Name</option>
我该怎么做

目前我正在做类似的事情,但不起作用:

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。整个表达式返回值1,这解释了为什么需要设置变量名来引用第一个创建的对象

Javascript一般适应;-)

或(三行中只有一个变量):

在ES2015(ES6)中,您可以直接将其编码为:

moltin.Cart.Insert ($scope.productId, qty, {[modi]: {[vari]: 1}}, function ( ...

设置后,使用console.log显示
modi
vari
的值。您可以使用Chrome开发工具并激活调试器来破解javascript错误您做错了,controller不知道视图,这是angular中的第一条规则。您应该在视图和控制器中的select上添加
ng change='somethingChanged($event)
:a
$scope.somethingChanged=function(event){}
dans在内部执行操作。另一件事,通常情况下,如果您正确生成了选项,您应该使用
ng options
dans选项的值应该是,并且可以从ng model自动检索对象尝试了第一个示例,结果非常有效。非常感谢。能解释一下这里发生了什么吗??
let insert = {};
(insert[$(this).attr('ng-id')] = {})[$(this).attr('value')] = 1
moltin.Cart.Insert ($scope.productId, qty, insert, function ( ...
moltin.Cart.Insert ($scope.productId, qty, {[modi]: {[vari]: 1}}, function ( ...