我正在使用Titanium Appcelerator和Node.ACS来管理我的服务器页面。 我必须使用一些API来更新对象,这些对象基本上是JSON对象。
我想做一个函数来更新一个对象的一个字段,但不知道如何构造JSON配置。
这是我的代码:
function (id, field, value) { ACS.Objects.update({ classname: MyObject, id: id, fields: { HERE_MUST_GO_THE_FIELD_NAME: value } }, function(data) { if (data.success) { console.log('Done'); } else { console.log('Error'); } }); }我知道我可以通过以下方式创建一个属性:
var foo = {}; var bar = 'baz'; foo[bar] = '123';但在这种情况下,我无法做出类似的事情:
ACS.Objects.update({ classname: MyObject, id: id, fields[field]: value }, function(data) {因为它会抛出错误。 那么,有没有办法做到这一点?
注意:显然,make:
fields: { field: value }不起作用,因为作为文字。
I'm using Titanium Appcelerator, and Node.ACS to manage my server pages. I must use some APIs to update objects, which basically are JSON objects.
I want to do a function to update one field of an object, but don't know how dinamically construct the JSON config.
This is my code:
function (id, field, value) { ACS.Objects.update({ classname: MyObject, id: id, fields: { HERE_MUST_GO_THE_FIELD_NAME: value } }, function(data) { if (data.success) { console.log('Done'); } else { console.log('Error'); } }); }I know that I can create a property dinamically with:
var foo = {}; var bar = 'baz'; foo[bar] = '123';But in this case I cannot make something like:
ACS.Objects.update({ classname: MyObject, id: id, fields[field]: value }, function(data) {Because it throws an error. So, is there a way to do this?
NOTE: Obviously, make:
fields: { field: value }is not working, because works as literal.
最满意答案
好吧,我几乎是傻瓜(差不多,因为我自己意识到了解决方案)。
它与标准相同,但更深:
var config = { classname: MyObject, id: id, fields: {} }; config.fields[field] = value; ACS.Objects.update(config, function(data) {我把它放在这里为其他像我这样的新手。
Ok, I'm almost stupid (almost, because I realized by myself the solution).
It's the same pattern as standart, but more deep:
var config = { classname: MyObject, id: id, fields: {} }; config.fields[field] = value; ACS.Objects.update(config, function(data) {I leave it here for others newbies like me.
更多推荐
发布评论