2
ビューにwidget
が2つある場合。そして、あなたは最初のウィジェットで何かを行い、2番目のウィジェットを更新(display_field
と呼ぶ)したいとします。 2番目のウィジェットにidentifier
を含めるにはどうすればよいですか?OdooのウィジェットのJavascript識別子
は、例えばwidget
の拡張定義で:
local.FieldNewWidget = instance.web.form.AbstractField.extend({
init: function(parent, options) {
},
events: {
'click .oe_new_input_button': 'open_new_specific_form',
},
start: function() {
},
display_field: function() {
},
render_value: function() {
},
open_new_specific_form: function(event) {
var self = this;
var new_action = {
type: 'ir.actions.act_window',
name: $(event.target).data('name'),
res_model: $(event.target).data('data-model'),
res_id: $(event.target).data('res-id'),
view_mode: 'form',
view_type: 'form',
views: [[false, 'form']],
target: 'new',
context: {
},
flags: {'form': {'action_buttons': true}},
}
self.do_action(new_action, {
on_close: function() {
// I want to refresh (call display_field) the second widget here.
// What is the identifier for the second widget?
},
});
},
});
ビュー内のイベントをトリガーする方法を例に挙げるといいでしょう –
すべてのウィジェットのinitまたはstart関数にこの行を追加します。 – Cherif
これはプログラムでビュープロパティを設定するためです。あなたがodooによって管理されている関係paretnの子を制動するので、残念ながら私はそれを気付かなかった –