我寫這樣的我的dojo小工具的ctor's。dojo小工具Id衝突
constructor: function(params){
var r = this.inherited(arguments);
this.params = params;
//other ctor works
return r;
}
我使用JSON響應作爲ctor參數instanciate小部件。像new MyWidget(res)
和JSON響應包含一個id
屬性像{id: 5, text: 'Hallo'}
現在_WidgetBase
構造對待這個id作爲微件ID,並拋出Tried to register widget with id==6 but that id is already registered
。導致可能有其他一些小部件也在獲得id: 6
的另一個的主題。
我不能將JSON響應更改爲像subject_id
這樣的輸出,因爲它需要改變很多東西。
我需要在小部件實例化後獲取該id。
那麼處理這個問題會是一個好的設計?
'res'實際上是否包含_WidgetBase的任何參數?我的意思是,你有沒有理由不能在構造函數中執行'new MyWidget({myParams:res})'和'this.params = params.myParams;'? – Frode
是的,我可以做到。然而,以前已經做過的類需要更改爲'this.params.myParams',這是很多工作。它也不太好看。沒有更好的選擇嗎? –
怎麼樣'res.subject_id = res.id;刪除res.id;'在實例化之前呢?誠然,這看起來不太好:P – Frode