Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Utilização de atributo que está sendo herdado no C#

Tenho uma classe, no C#, Fornecedor que herda atributos da classe Emitente:

public class Fornecedor : Emitente {

}

Até aí tudo bem, quando tento utilizar este atributo no JS, da seguinte forma:

Fornecedor: {
    Nome:  $($(this).find('td').get(1)).text() === '' ? '' : $($(this).find('td').get(1)).text()
}

Recebo um erro informando que a classe do atributo utilizado (nome) não foi instanciada.

Modifiquei o código para:

  Fornecedor: {
           Emitente: {
                       Nome: $($(this).find('td').get(1)).text() === '' ? '' : $($(this).find('td').get(1)).text()
            }
}

e funcionou.

O JS não entende herança? Não consigo utilizar Fornecedor.Nome?

Já passaram por isso?

Obrigado.

5 respostas

Bom dia, Anderson! Como vai?

Respondendo de forma direta a sua pergunta

O JS não entende herança?

Sim, é possível trabalhar com herança no JavaScript! Dê uma olhada nesse link da documentação da linguagem.

Contudo, quando vc faz

Fornecedor: {
    Nome:  $($(this).find('td').get(1)).text() === '' ? '' : $($(this).find('td').get(1)).text()
}

o que na realidade está ocorrendo é a criação de um objeto javascript. De forma isolada, esse código não tem erro!

Eu imagino que o problema deva ocorrer na forma como o C# processa essa informação e não no JS em si.

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Olá, muito obrigado pelo seu retorno, de fato é isso mesmo, o problema está na forma como a informação esta sendo processada.

Existe algo que eu possa fazer para corrigir? Sem ter que especificar que eu estou usando o atributo da classe que está sendo herdada?

Até mesmo porque se eu for fazer esta alteração tenho que modificar muitos arquivos que utilizam esta classe no JS porque foi removido um atributo da classe fornecedor pois o mesmo existe na classe Emitente, sendo assim terei que modificar todos os arquivos que fazem a chamada Fornecedor.Nome....

Mais uma vez obrigado.

solução!

Bom, se houve modificações no seu modelo de dados por parte do C# e vc não quer impactar o que é feito no JS, então só consigo ver uma saída:

alterar a forma como o C# processa os dados enviados pelo JS de modo que vc possa continuar recebendo as mesmas informações mas adequando-as à nova realidade do seu modelo!

Em todo caso, essa questão me parece que se encaixaria melhor na seção do .NET! Dada essa solução que eu propus, acho que lá vc teria mais chance de encontrar a resposta exata que procura!

O que vc acha? Faz sentido pra vc?

Faz sim Gabriel!!

Você consegue mover o post ou posso criar outro lá na seção .NET?

É melhor criar outro lá! Daí vc pode linkar com esse aqui explicando a situação e como vc faz no seu código C# para processar os dados!

Grande abraço e bons estudos, meu aluno!