Importante: seu código existente continuará funcionando como sempre. Nenhuma ação imediata é necessária.
O que está acontecendo?
Estamos removendo o parâmetro $w dos manipuladores de evento. Os manipuladores de evento terão agora apenas um parâmetro de evento.
Por exemplo, até agora, quando você adicionava um manipulador de eventos onClick a um botão usando o painel de propriedades, o seguinte código seria adicionado ao painel de código:
export function myButton_click(event, $w) {
//Add your code for this event here:
}
Agora você receberá o seguinte código:
export function myButton_click(event) {
//Add your code for this event here:
}
Se você não sabe porque o parâmetro $w estava lá em primeiro lugar, você pode parar de ler o restante desta mensagem. No entanto, se agora você está preocupado sobre como usar manipuladores de eventos com repetidores, continue lendo.
Como vou conseguir um seletor de escopo?
Até agora, você usaria o parâmetro $w de um manipulador de evento para obter um seletor de escopo.
Eventos em repetidores são disparados de um elemento em um item repetidor. O parâmetro $w permite selecionar a instância específica de um elemento que está no mesmo item de repetidor do elemento que disparou o evento.
Por exemplo, aqui quando uma imagem repetida é clicada, o valor de um elemento de texto no mesmo item repetido da imagem clicada é alterado para "Selecionado":
export function myRepeatedImage_onClick(event, $w) {
$w("#myRepeatedText").text = "Selected";
}
A partir de agora, você usará a função $w.at() para obter um seletor de escopo. A função usa um parâmetro de contexto que determina o escopo do seletor que você recebe. Você obtém o contexto adequado do parâmetro de evento do manipulador de eventos.
Então, para similar o exemplo acima, você escreverá o seguinte código:
export function myRepeatedImage_onClick(event) {
let $item = $w.at(event.context);
$item("#myRepeatedText").text = "Selected";
}
Além disso, agora você pode obter um seletor com escopo em manipuladores de eventos de conjunto de dados.
Por exemplo, quando o conjunto de dados está prestes a ser salvo, um elemento de texto mostra uma mensagem informando que algo está sendo saldo:
export function dataset_beforeSave(event) {
let $item = $w.at(event.context)
$item("#statusText").value = "Saving...";
}
O que preciso fazer para que meu código antigo não seja quebrado?
Nada. É isso mesmo, o seu código existente não será quebrado. Continuaremos suportando o modo antigo de fazer as coisas, mas recomendamos que você use a nova sintaxe daqui para frente.
Observe também que o auto-completamento do painel de códigos não incluirá mais o parâmetro $w nos manipuladores de eventos.
Quando isso acontecerá?
Você já pode começar a usar a nova sintaxe!