我创建了一个简单的dojo属性,它是一个简单的项目符号列表,可以添加/删除新项目。
但是,我在设置器在页面编辑和所有属性选项卡中都能正常工作时遇到问题。
我的二传手看起来像这样:
_setValueAttr: function (val) {
array.forEach(val, this._addRow, this);
}
它适用于所有属性选项卡,因为postCreate已经运行并创建了我的容器:
contentPane: null,
postCreate: function() {
contentPane = new ContentPane();
}
但是在on-page-editing选项卡上,setValueAttr正在postCreate之前运行,然后没有contentPane将我的行攻击到..
我在文档中找到了关于生命周期的内容,但我不确定它是否相关:
http://dojotoolkit.org/reference-guide/1.8/quickstart/writingWidgets.html#life-cycle
如何处理两个视图的setter ..?
答案 0 :(得分:0)
最好的方法取决于场景,但作为示例,您可以在窗口小部件构造函数中尝试以下操作:
aspect.after(this, "set", function (name, value) {
if (name === 'value' && value) {
// The property value has been set/updated
// TODO Do something if the content pane has been created
}
}, true);
导入aspect
可以 dojo/aspect
。