# AUR0802

## Error Message

`AUR0802: "& updateTrigger" invalid usage. This binding behavior requires at least one event name argument: eg <input value.bind="firstName & updateTrigger:'blur'">`

## Description

This error occurs when the `& updateTrigger` binding behavior is used in a binding expression without providing any event names as arguments.

## Cause

The `& updateTrigger` binding behavior is designed to override the default events that trigger updates for a two-way (`.bind`) or `.from-view` binding. It requires you to specify which DOM events should cause the view model property to be updated with the view's value.

If you apply the behavior without specifying any event names (e.g., `<input value.bind="message & updateTrigger">`), the behavior doesn't know which events to listen for, making its usage invalid.

## Solution

1. **Provide Event Names:** Add one or more event names as string arguments to the `updateTrigger` behavior, separated by colons (`:`). The behavior will then listen for these specified events on the element to trigger updates.
2. **Remove Behavior:** If you want the default update behavior for the element (e.g., 'input' and 'change' events for `<input>`), simply remove the `& updateTrigger` behavior altogether.

## Example

```html
<!-- Incorrect: updateTrigger used without any event arguments -->
<input type="text" value.bind="firstName & updateTrigger">
<textarea value.from-view="notes & updateTrigger"></textarea>

<!-- Correct: Specifying 'blur' event to trigger update -->
<input type="text" value.bind="lastName & updateTrigger:'blur'">

<!-- Correct: Specifying multiple events ('keyup' and 'change') -->
<input type="search" value.bind="searchTerm & updateTrigger:'keyup':'change'">

<!-- Correct: Default behavior (no updateTrigger behavior needed) -->
<input type="text" value.bind="middleName">
```

```typescript
// View Model
import { customElement } from 'aurelia';

@customElement({ /* ... */ })
export class MyComponent {
  firstName = '';
  lastName = '';
  searchTerm = '';
  middleName = '';
  notes = '';
}
```

## Debugging Tips

* Verify that the `& updateTrigger` syntax includes at least one event name argument enclosed in single or double quotes, like `& updateTrigger:'myevent'`.
* Ensure event names are separated by colons if multiple are provided: `& updateTrigger:'event1':'event2'`.
* Check for typos in the binding behavior name (`updateTrigger`) and the event names.
* If you don't need custom event triggers, remove the behavior.
