Skip to content

Commit 06bf28f

Browse files
committed
Events shiny:value and shiny:error for outputs
1 parent 620fdc0 commit 06bf28f

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

srcjs/shinyapp.js

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,13 @@ var ShinyApp = function() {
227227
delete this.$values[name];
228228

229229
var binding = this.$bindings[name];
230-
if (binding && binding.onValueError) {
231-
binding.onValueError(error);
230+
var evt = jQuery.Event('shiny:error');
231+
evt.name = name;
232+
evt.error = error;
233+
evt.binding = binding;
234+
$(binding ? binding.el : document).trigger(evt);
235+
if (!evt.isDefaultPrevented() && binding && binding.onValueError) {
236+
binding.onValueError(evt.error);
232237
}
233238
};
234239

@@ -240,8 +245,13 @@ var ShinyApp = function() {
240245
delete this.$errors[name];
241246

242247
var binding = this.$bindings[name];
243-
if (binding) {
244-
binding.onValueChange(value);
248+
var evt = jQuery.Event('shiny:value');
249+
evt.name = name;
250+
evt.value = value;
251+
evt.binding = binding;
252+
$(binding ? binding.el : document).trigger(evt);
253+
if (!evt.isDefaultPrevented() && binding) {
254+
binding.onValueChange(evt.value);
245255
}
246256

247257
return value;

0 commit comments

Comments
 (0)