由于#if

时间:2015-04-30 08:34:07

标签: ractivejs

问题在于(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操作中,“if if”未按预期打印出来,但#each尝试使用未预期的未定义数组。

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

添加了

console.log(arr)以查看是否实际调用了过滤器,它是。 此外,当我尝试从过滤器返回[]时,它仍会调用set_class,这是意料之外的,因为没有任何内容可以迭代。

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

谢谢!

1 个答案:

答案 0 :(得分:0)

好像它是known problem,将在v0.8中修复