11.886 messaggi dal 09 febbraio 2002
Contributi

Domani riprovo... sono un po lento :)

È normale, stai imparando. Anzi, è positivo che sia riuscito a farlo funzionare in così poco tempo.

Facciamo un passo alla volta, iniziando da questa select:

<select id="opLine" runat="server"
data-bind="options: productLines,
optionsText: 'text',
value: selectedLine">
</select>


Dato che hai messo correttamente in binding il valore selezionato sulla proprietà selectedLine del viewmodel, ora puoi creare un computed observable che reagisca ai suoi cambiamenti. Vedi questo fiddle:
https://jsfiddle.net/1tmcauad/11/

Nel ViewModel ho creato una proprietà load che è appunto un computed observable e verrà automaticamente richiamata da knockoutjs ogni qualvolta selezioni un valore nella select.

Grazie ai computed observable puoi fare a meno di gestire gli eventi con jquery. Questo blocco può sparire.
$('#MainContent_opLine').on('change', ...


ciao,
Moreno

Enjoy learning and just keep making
944 messaggi dal 11 febbraio 2013
Sei molto gentile (dipenderà dal cognome...:)
mi riferisco a tutto.

cmq per ora ho inserito load come proprietà e ho fatto questo

function ViewModel() {
         this.ListaArticoli= ko.observableArray([]),
         this.productLines= ko.observableArray([
                                         { text: "nome linea", value: "L1" },
                                         ,,,...         ]),      
         this.selectedLine= ko.observable(),
         this.load= ko.computed(function () {
             var selectedLine = this.selectedLine();
             if (!selectedLine) return;

             Load(0, 9, selectedLine.value);

         }, this),
         this.pendingRequest= ko.observable(false),
         this.EndOfData= ko.observable(false)
     };

var viewModel = new ViewModel();



ho chiamato la funzione Load nella omonima proprietà per vedere cosa accade
nella pagina ho uno span per contare gli elementi ...bhe non si puo dire che non sia veloce raggiunge i 1000 in pochi secondi
:) :)

Ora provo a capire un po meglio
ciao ciao
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
usa il debugger lato client o fai dei semplici console.log per capire se la computed observable va in esecuzione più volte. Questo potrebbe significare che dalla funzione Load modifichi qualche observable da cui la computed dipende.

ciao,
Moreno

Enjoy learning and just keep making
944 messaggi dal 11 febbraio 2013
Se tolgo viewModel.pendingRequest() in effetti non va in un loop infinito

function Load(Skip, Take, Line) {
    //if (!viewModel.pendingRequest()) {
    //    viewModel.pendingRequest(true);
           
        $.ajax({...

    //}
}
944 messaggi dal 11 febbraio 2013
Ok ora inizio a capire bene

debbo anche mettere in sessione nel modello il valore della select quando l'utente visita l'articolo

ti ringrazio per avermi fatto scoprire un mondo che non conoscevo

tuttavia googolando ho visto parlare molto bene di Vuejs

Non sono in grado di valutare ma dovendo scegliere fra Anjular Vuejs e Knockoutjs
dove conviene buttarsi considerando soprattutto la semplicità nell'utilizzo ed in prospettiva come evolveranno

ciao
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


dovendo scegliere fra Anjular Vuejs e Knockoutjs

Hai l'assoluta libertà di scegliere quello che preferisci e che pensi sia più adatto all'applicazione che devi sviluppare. Io ti ho suggerito Knockout solo perché è facile da iniziare ad usare e perché è stato sviluppato con lo specifico scopo di unire dati e markup, che era il tuo proposito iniziale.


dove conviene buttarsi considerando soprattutto la semplicità nell'utilizzo ed in prospettiva come evolveranno

Probabilmente tra 5 anni saranno cambiate le pratiche di sviluppo ed esisteranno delle alternative. Non scegliere MAI un framework client side sulla base della sua aspettativa di vita, perché sarà in ogni caso breve. E poi considera che, dopo tanti rimuginamenti, puoi anche decidere di non usare alcun framework, come leggi qui:
https://www.extrategy.net/it/blog/frameworkless-frontend-development
Questa è la sessione
https://www.youtube.com/watch?v=cCj0OPWcDh8

ciao,
Moreno

Enjoy learning and just keep making
944 messaggi dal 11 febbraio 2013
Bhe...rincuorante : sto ancora studiando javascript :)

a voglia...

ciao

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.