Javascript 检测数据存储中记录的更改

Javascript 检测数据存储中记录的更改,javascript,sproutcore,Javascript,Sproutcore,我在模板视图中嵌入了一个大svg。所有svg元素的id都对应于sproutcore数据存储中记录的guid。 现在,我在每条记录上都有一个“selected”布尔属性 每当“selected”属性在True和False之间切换时,我想调整记录的相应svg元素。该视图应反映对记录的选定属性的更改 我不知道如何设置绑定/观察来实现这一点。如果我自己为每个记录构建带有sc的svg,我知道如何设置绑定。但是,当您已经有了svg时,我不知道如何构建绑定 型号代码: App.Node = SC.Record

我在模板视图中嵌入了一个大svg。所有svg元素的id都对应于sproutcore数据存储中记录的guid。 现在,我在每条记录上都有一个“selected”布尔属性

每当“selected”属性在True和False之间切换时,我想调整记录的相应svg元素。该视图应反映对记录的选定属性的更改

我不知道如何设置绑定/观察来实现这一点。如果我自己为每个记录构建带有sc的svg,我知道如何设置绑定。但是,当您已经有了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...

对我有效的是我自己给对象添加观察者

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

节点是一个记录。现在,我在选定的属性上手动添加了一个观察者,并在该属性上执行“update\u node\u selected”函数。它获取一个目标参数,该参数是对象,在我的例子中是记录。

您的记录是什么样子的?这是SC2还是1.x分支?1.6 i尽管它们之间在数据存储/观察者/绑定方面没有太大区别。问题是您无法在视图中获得要反映在模型中的更改,还是您自动希望保存?我希望模型/记录实例中的更改能够反映在视图中。