"Failed to compute" 错误,因为 #if 中的意外操作

"Failed to compute" error because of unexpected operation inside #if

这里是问题 (Ractive.js v0.7.3): http://jsfiddle.net/Inversion/hLym2xcy/

r = new Ractive
    el: 'cont'
    template: '''
        {{#task.options}}
            {{#if pros}}
                inside if
                {{#each filter(.pros)}}<li class='{{set_class(.)}}'>+{{.v}}</li>{{/each}}
            {{/if}}
        {{/task.options}}
    '''
    data:
        task:
            options: [{pros:[{v:1}]}]
        set_class: (o)-> o.v
        filter: (arr)-> console.log(arr);arr || []

setTimeout(
    -> r.set('task.options.0.pros', undefined)
    2000
)

r.set 操作中 "inside if" 未按预期打印出来,但 #each 尝试使用未定义的数组,这不是预期的。

我不能保证 pros 数组的存在,这就是为什么我使用 {{#if pros}} 不使用它,但似乎它不起作用。

添加

console.log(arr)是为了看filter是否真的被调用了,确实是。 此外,当我尝试从过滤器 return [] 时,它仍然调用 set_class 这是意外的,因为没有什么可以迭代。

有没有办法克服这些意想不到的问题?

谢谢!

似乎是 known problem 并将在 v0.8

中修复