Avatar billede _et Praktikant
13. marts 2012 - 10:30 Der er 15 kommentarer og
1 løsning

ExtJS update label med ny html

Hej - jeg har et label felt som skal have "erstattet" sin html

her er koden:

}, {
xtype : 'label',
html : this.tr("responseInfo", "no Response yet!"),
id: "field-response" }],


Når jeg sætter ny text ind virker det, men af andre årsager vil jeg indsætte ny html. - Jeg har prøvet følgende men det erstatter ikke den gamle, men kun den synlige tekst

function setResponse(_value){
if (_value == 'getOK'){
//Ext.getCmp('field-response').update('this.tr("getResponseOkInfo", "Time recived from database")');
Ext.getCmp('field-response').update("Time recived from database");
}}

den nederste update erstatter teksten, men den øverste indsætter strengen som text og erstatter dermed ikke indholdet.

Hvordan erstatter jeg så øverste linje giver samme resultat som nederste??

Mvh
Teddy
Avatar billede olebole Juniormester
13. marts 2012 - 13:22 #1
<ole>

Hvorfor ikke bruge ganske almindelig DOM? Det vil du formodentlig kunne klare med en linje eller to

/mvh
</bole>
Avatar billede _et Praktikant
13. marts 2012 - 13:29 #2
Jeg er ikke skrap til dom manipulation.
Kom med et udkast.

Mvh
Avatar billede olebole Juniormester
13. marts 2012 - 13:31 #3
Udfra hvad? Jeg kender intet til din kode  =)
Avatar billede _et Praktikant
13. marts 2012 - 13:43 #4
Så bliver det ikke nemt.
Jeg må jo lave noget opsøgende arbejde så - øv

Men tak for forsøget
Avatar billede olebole Juniormester
13. marts 2012 - 15:55 #5
Det siger vel sig selv, at du ikke kan forvente svar på noget uden at vise noget kode
Avatar billede _et Praktikant
14. marts 2012 - 11:40 #6
Ang: 'det briver ikke nemt' så var det ment som en bekræftigelse af din kommentar 'ud fra hvad?'

Der er ingen sure miner - jeg tænkte bare generalt på et tænkt eksempel hvor der gribes fat i et dom element og så udskiftede det med et andet fra JS.

Men det kan godt være at det ikke er sådan at lave.

Men tak for hjælpen..

Mvh
Avatar billede olebole Juniormester
14. marts 2012 - 12:06 #7
Jo, det er så let som ingenting, men udfra det, du skriver, er det ikke det, du har brug for at gøre. Men da du er ekstremt lidt informativ, er der næppe nogen, der ved, hvad du har brug for
Avatar billede _et Praktikant
14. marts 2012 - 12:22 #8
Jeg ved det faktisk dårligt nok selv hvad jeg skal bruge.

Det er fordi jeg sidder med en hel hjemmeside der er reverse engeenered fra en minifiseret js fil.

Det betyder at jeg ikke har det fulde overblik over sammenhængen endnu og dermed ikke ved præcis hvordan jeg kan modificere uden at ødelægge noget.

Problemet ligger i et eksternt c program som tilføjer flere sprog til siden under build.
Der foreligger ingen source eller doc på dette tool, og som jeg kan se det leder dette tool efter "this.tr('...')" og arbejder med det.

Det vil sige at for at jeg kan fortsætte i det spor er jeg nød til at anvende "this.tr('...')" de steder hvor jeg vil have sprog systemet til at virke og er dermed ikke sikker på om DOM løsningen kan bruges
Avatar billede olebole Juniormester
14. marts 2012 - 12:39 #9
Så må du vel prøve at finde tr-metoden og aflure, hvad der sker i den
Avatar billede _et Praktikant
14. marts 2012 - 12:54 #10
Det er så der problemet opstår.

Det er ikke en metode, men alm html som defineres på et givet element f.eks en "label" som i spm.

var m_label = {
xtype : 'label',
HTML: this.tr("responseInfo", "no Response yet!")
};

Der hvor m_label "placeres" indsættes HTML parametrens værdi som html i (DOM må det vel være?).

men når jeg så forsøger at erstatte indholdet af HTML parameteren med f.eks this.tr("responseInfo", "NU ER DER SKIFTET!") så bliver det i www til linjen :

this.tr("responseInfo", "NU ER DER SKIFTET!")

istedet for :

NU ER DER SKIFTET!

som det skulle være..

Jeg har prøvet flere løsninger men der er ikke rigtigt noget der virker.
Jeg tror det er den forkerte parameter der erstattes eller at den fortolker det som en string der skal puttes ind i det allerede oprette this.tr() element.

Måske er løsningen at nedlægge elementet og oprette det igen, eller bare lave et for hver besked og så show hide efter behov..

Men alle gode forslag modtages :-)
Avatar billede olebole Juniormester
14. marts 2012 - 13:39 #11
tr er en metode. Ellers giver koden ingen mening
Avatar billede _et Praktikant
14. marts 2012 - 13:44 #12
Nu hvor du siger det - Så ja selvfølgelig.

Det vil jeg lige kigge på.
Avatar billede _et Praktikant
14. marts 2012 - 13:51 #13
Ja. Nu giver det mening....

Jeg så bare tr(.... og så tænkte jeg på gammeldavs html tabel

Jeg takker meget for diskutionen. Det var en fornøjelse.

Jeg vil gerne give point, men det er vist noget med at du ikke samler på dem ;-)


Mvh
Teddy
Avatar billede olebole Juniormester
14. marts 2012 - 17:48 #14
Selvtak. Helt korrekt ... du lægger selv et svar og accepterer det, så tråden lukkes  =)

Der kunne være tale om en OO-konstruktion à la:

function MyConstructor() {
    // Code
}
var p = MyConstructor.prototype;
p.tr = function(foo, bar) {
    alert("DoDaShitWith '"+foo+"' and '"+bar+"'.");
}


var fooBar = new MyConstructor();
fooBar.tr("Noget", "noget andet");
Avatar billede _et Praktikant
15. marts 2012 - 09:11 #15
Det er meget godt skudt med din OO, der er blot tale om et lookup og så retunering af streng i stedet for alert.

Takker for hjælpen
Avatar billede olebole Juniormester
15. marts 2012 - 12:08 #16
Du er velkommen  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester