2016-09-21 3 views
-2

Я динамически создаю объект и хотел бы, чтобы свойство (также объект) было значением переменной.Установить ключ свойства объекта в значение переменной

Мой код:

var guid, block, lot, muni, county, owner, prop_loc; 

guid = 'Some unique value'; 
//code to set the other variable values here... 

var menuItem = new MenuItem({ 
    id: 'basic', 
    label: 'Report', 
    onClick: lang.hitch(this, function() { 
     topic.publish('basicReportWidget/reportFromIdentify', { 
      guid : { //set this to the guid string value 
       block: block, 
       lot: lot, 
       muni: muni, 
       county: county, 
       owner: owner, 
       prop_loc: prop_loc, 
       type: 'basic' 
      } 
     }); 
    }) 
}); 
+1

Читайте о [___ 'кронштейну notation' ___] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects # Objects_and_properties) – Rayon

ответ

0

Как сказал Район, вы можете использовать нотацию нот для динамического задания свойств объекта.

Что-то, как это должно работать ...

var guid, block, lot, muni, county, owner, prop_loc; 

guid = 'Some unique value'; 

var menuItem = new MenuItem({ 
    id: 'basic', 
    label: 'Report', 
    onClick: lang.hitch(this, function() { 
    var obj = {}; 
    obj[guid] = { 
     block: block, 
     lot: lot, 
     muni: muni, 
     county: county, 
     owner: owner, 
     prop_loc: prop_loc, 
     type: 'basic' 
    }; 
    topic.publish('basicReportWidget/reportFromIdentify', obj); 
    }) 
}); 
0

Если все это ваш код, он может быть столь же простым, как замена объекта с ключом Guid к переменной Guid, как это:

var guid, block, lot, muni, county, owner, prop_loc; 

guid = 'Some unique value'; 
//code to set the other variable values here... 

var menuItem = new MenuItem({ 
    id: 'basic', 
    label: 'Report', 
    onClick: lang.hitch(this, function() { 
     topic.publish('basicReportWidget/reportFromIdentify', { 
      guid : guid 
     }); 
    }) 
}); 

В противном случае , если вы не можете изменить этот объект menuItem по любой причине, вы можете переписать функцию onClick через что-то вроде:

menuItem.onClick = function() { 
    lang.hitch(this, function() { 
     topic.publish('basicReportWidget/reportFromIdentify', { 
      guid : guid 
     }); 
    }; 
Смежные вопросы