Preciso inserir um texto de um banco de dados em um slideshow. Porém, quero "resumir" os textos com mais de 150 caracteres para que não altere o layout. A solução descrita neste post https://www.wix.com/corvidsite/corvid-pt/forum/discussao-da-comunidade/caixa-de-texto-expansivel/p-1/dl-5d07db88527ed50017926722 resolve o problema para textos estáticos, porém, o autor não abordou a solução para textos dinâmicos. Ou seja, quando faço o vínculo do texto ao banco de dados, a limitação no texto dinâmico não acontece. Preciso apenas saber como vincular o código ao banco de dados, para que funcione com o texto que está vindo do banco de dados, e não com o texto que estou utilizando para preencher o espaço.
Abaixo o código que estou utilizando, o qual copiei e alterei somente a quantidade de caracteres a serem mostrados e o nome do objeto (neste caso, #text16):
let fullText; // variável para conter o texto completo
let shortText; // variável para manter a versão curta do texto
$w.onReady(function () {
//TODO: write your page related code here...
// quantos caracteres para incluir na versão abreviada
const shortTextLength = 150;
// leia o texto completo e armazene-o na variável fullText
fullText = $w("#text16").text;
// pegue o número de caracteres definidos em shortTextLength e //armazene-os na variável shortText
shortText = fullText.substr(0, shortTextLength) + "...";
// definir o conteúdo do elemento de texto para ser o texto curto
$w("#text16").text = shortText;
});
Oi @Delano Heringer.
Se seu texto se encontra em um repetidor é preciso acessar o escopo de cada item, para isso uso o onItemReady ela define a função que é executada quando um novo item é adicionado ao repetidor.
$w.onReady(function () { $w("#repeater1").onItemReady( ($item, itemData, index) => { // Você pode acessa o itemData para pegar o //o texto do item atual itemData.seuTexto //"seuTexto" é o nome da coluna do banco de dados fullText = itemData.seuTexto; // pegue o número de caracteres definidos em shortTextLength e //armazene-os na variável shortText shortText = fullText.substr(0, shortTextLength) + "..."; // definir o conteúdo do elemento de texto para ser o texto curto $item("#text16").text = shortText; }); });
https://www.wix.com/corvid/reference/$w/repeater/onitemready