Javascript:将HTML输入表单名称/值转换为对象图(MeteorJS)

时间:2015-02-22 19:24:58

标签: javascript meteor coffeescript

我在MeteorJS控制器中有一个(非常大的)表格。我有几百个输入,例如名称,例如“sheetProperties.X.Y”“sheetProperties.SubForm1.FavoriteColor”等。

我不想在表单中声明所有可能的输入,因为这会成为一个经常变化的噩梦,并且有很多。

为了使它工作,我在我的控制器中放了这样的东西:

控制器:

#this only works on object without any subproperties..
props = {}
for element in event.target
  if element.tagName == "INPUT"            
    if name.startsWith "sheetProperties"
      props[name] = element.value

我想做的是获取名称并将其转换为对象引用。

我在这里开始这个小提琴:http://jsfiddle.net/c463acyu/2/ 目标是使用长名称“sheetProperties.something.somethignElse”并将其转换为适当的对象,例如。

所需对象图:

sheetProperties:
  something:
    somethingElse: "Value goes here"

示例代码:

name = "foo.bar.baz"
value = "42"



names = name.split '.'
console.log names
objGraph = {}
currentObj = objGraph
for name in names  
    lastObj = currentObj
    currentObj = currentObj[name] ?= {}    

lastObj[name] = value

console.log(objGraph)

以上小提琴安全吗?怎么这样呢?有更好的方法吗?

0 个答案:

没有答案