为什么变量替换仅建议用于在窗口小部件生命周期内不会更改的值?

时间:2016-06-21 16:45:07

标签: dojo

关于Dojo中的变量替换

  

可变替代:   模板可以在DOM渲染上设置值   虽然使用了一个简单的变量占位符语法,看起来如此   像这样:

     

$ {属性}

根据文件

  

仅建议对值使用模板中的变量替换   在小部件的生命周期内不会更改。其他   单词,如果您希望能够在a中设置属性的值   我们以编程方式在您的应用程序的生命周期中使用widget   建议使用您的小部件的postCreate方法来设置任何   变量以编程方式通过widget的set()方法。

有人可以解释为何提出此建议吗?

1 个答案:

答案 0 :(得分:1)

Dojo中的变量替换没有绑定。 这意味着即使您更改变量的实际值也不会改变。

如果需要绑定,则可以为该值使用附加点和设置器。然后它将具有绑定,UI将使用新值进行更新。 像这样:

    _setLabelAttr : {
        node : "_tplLabelNode",
        type : "innerHTML"
    },

将附加点innerHTML的{​​{1}}绑定到小部件的“label”属性。
因此_tplLabelNode将更新用户界面。

但是widget.set('label', 'foo');没有绑定。 <div>${label}</div>将在创建窗口小部件时被替换,并且永远不会更新