在jsViews中更改onAfterChange的范围

时间:2013-12-16 13:52:40

标签: javascript jsviews

我有非常嵌套的数据,所以我添加了一个{{scope variable}}...{{/scope}}标记,除了更改范围外什么都不做:

scope: function (newScope) {
    return this.tagCtx.render(newScope);
}

到目前为止这是有效的,但此示例代码在onAfterChange中存在问题,我将其用于将数据推送回服务器。

在初始化程序中:

data.Foo.Bar.TheObject = new MyObject('Foo'); // has "Name" property set to "Foo"

在模板中:

{{scope Foo.Bar.TheObject}}
     <input type="text" data-link="Name" />
{{/scope}}

它会正确显示“Foo”,但是当我更改它时,在onAfterChange我得到data对象而不是TheObject。我可以向{{scope}}添加内容以实现onAfterChange的范围更改吗? ({{for}}标记有此行为,但我无法遍历单个对象。)

1 个答案:

答案 0 :(得分:0)

正如上面的评论中所提到的,{{for}}标记的确适合于您希望将当前数据上下文(mrs_sheep称为“范围”)移动到其他对象(或数组)的情况。 / p>

您可以执行{{for my.path.to.some.objectOrArray}} - 并且目标不必是数组。

参见http://www.jsviews.com/#fortag“为给定对象渲染指定模板,或迭代给定数组”