обнаруживать изменения в записях в хранилище данных - PullRequest
1 голос
/ 09 сентября 2011

Я встроил большой svg в представление шаблона. Все элементы svg имеют идентификаторы, соответствующие guid для записей в хранилище данных sproutcore. Теперь у меня есть «выбранная» логическая переменная для каждой записи.

Я хочу настроить соответствующий элемент svg записи всякий раз, когда свойство selected выбрано между True и False. Представление должно отражать изменения свойства slected записи.

Я не могу понять, как настроить привязки / наблюдатели, чтобы сделать это. Если бы я сам собрал svg с sc для каждой записи, я бы знал, как настроить привязки. Но я не знаю, как создавать привязки, когда у вас уже есть svg.

код модели:

App.Node = SC.Record.extend(
   name : SC.Record.attr(String),
   value : SC.Record.attr(String),
   selected: SC.Record.attr(Boolean),
}),

смотреть код:

App.svg_picture = SC.View.design({

  childViews: 'svgpicture'.w(),

   layout: { left:12, right:12, top:12, bottom:12},

   svgpicture: SC.TemplateView.create({
   /**
   * settings.
   */
   templateName: 'svgtest2',
   nodeBorderColorSel: '#FFB60B',
   nodeColorSel: 'yellow',

   /**
    * Event handling code.
    */
   ....

svg.handlebar пример:

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="manifold" xmlns:xlink="http://www.w3.org/1999/xlink"  >
tank_1</text>
<circle cy="25" cx="70" r="20" id="tank_1"  strokewidth:5; fill:none; "  />

<circle cy="25" cx="120" r="20" id="tank_10" strokewidth:5; fill:none; "  />
<circle cy="25" cx="170" r="20" id="tank_11" strokewidth:5; fill:none; "  />
... etc...

1 Ответ

0 голосов
/ 12 сентября 2011

Что мне помогало, так это добавление наблюдателей к объектам.

 node.addObserver('selected', this, 'update_node_selected');

узел является записью. теперь я вручную добавляю наблюдателя в выбранное свойство, выполняя функцию update_node_selected для этого. который получает целевой параметр, который является объектом, а в моем случае - запись.

...