Javascript 检测数据存储中记录的更改
我在模板视图中嵌入了一个大svg。所有svg元素的id都对应于sproutcore数据存储中记录的guid。 现在,我在每条记录上都有一个“selected”布尔属性 每当“selected”属性在True和False之间切换时,我想调整记录的相应svg元素。该视图应反映对记录的选定属性的更改 我不知道如何设置绑定/观察来实现这一点。如果我自己为每个记录构建带有sc的svg,我知道如何设置绑定。但是,当您已经有了svg时,我不知道如何构建绑定 型号代码:Javascript 检测数据存储中记录的更改,javascript,sproutcore,Javascript,Sproutcore,我在模板视图中嵌入了一个大svg。所有svg元素的id都对应于sproutcore数据存储中记录的guid。 现在,我在每条记录上都有一个“selected”布尔属性 每当“selected”属性在True和False之间切换时,我想调整记录的相应svg元素。该视图应反映对记录的选定属性的更改 我不知道如何设置绑定/观察来实现这一点。如果我自己为每个记录构建带有sc的svg,我知道如何设置绑定。但是,当您已经有了svg时,我不知道如何构建绑定 型号代码: App.Node = SC.Record
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尽管它们之间在数据存储/观察者/绑定方面没有太大区别。问题是您无法在视图中获得要反映在模型中的更改,还是您自动希望保存?我希望模型/记录实例中的更改能够反映在视图中。