2017-02-24 3 views
1

Also Jungs, ich bin hier ein bisschen kleiner Albtraum. Beginnend mit MakoJs und Marko-Widgets, die bis jetzt liebten. Aber ...LassoJS und Marko-WIdgets

Dies ist die Sache, die ich die Organisation einiger Proben folgen und mit dem lassoJS integrieren. In der Lasso-Art, Dinge zu tun, kann ich die Methoden der definierten Komponente nicht implementieren.

Also, was ich brauche zu erreichen:

module.exports = require('marko-widgets').defineComponent({ 
    template: require('./template.marko'), 

    getInitialState: function(input) { 
     return { 
      name: input.name, 
      selected: input.selected || false; 
     } 
    }, 

    getTemplateData: function(state, input) { 
     var style = ; 

     return { 
      name: state.name, 
      color: state.selected ? 'yellow' : 'transparent' 
     }; 
    }, 

    handleClick: function() { 
     this.setState('selected', true); 
    }, 

    isSelected: function() { 
     return this.state.selected; 
    } 
}); 

Meine Marko Datei, da dies wird zu schreiben:

import './style.css' 

static function getClassNameForValue(value) { 
    if (value < 0) { 
     return 'negative'; 
    } else if (value > 0) { 
     return 'positive'; 
    } 
} 

class { 
    onInput(input) { 
     var value = input.value || 0; 

     this.state = { 
      value: value 
     }; 
    } 

    handleIncrementClick(delta) { 

     this.state.value += delta; 
     var value = this.state.value; 


     var send = { 
      value:value 
     } 
     console.log(value); 
     $.post("/tryPost", send,function(data) { 
      console.log(data); 
     }); 
    } 

    handleInputKeyUp(event, el) { 
     var newValue = el.value; 
     if (/^-?[0-9]+$/.test(newValue)) { 
      this.state.value = parseInt(newValue, 10); 
     } 
    } 
} 

$ var value=state.value; 

<div class=['number-spinner', getClassNameForValue(value)]> 

    <button type="button" onClick("handleIncrementClick", -1)> 
     - 
    </button> 

    <input type="text" value=state.value size="4" 
     onKeyUp("handleInputKeyUp")> 

    <button type="button" onClick("handleIncrementClick", 1)> 
     + 
    </button> 

</div> 

Edit: So weiß ich dachte, welche Version dieser Module I‘ m using könnte helfen.

"lasso": "^2.11.3", 
    "lasso-less": "^2.4.3", 
    "lasso-marko": "^2.2.2", 
    "lodash": "^4.17.4", 
    "markdown-js": "0.0.3", 
    "marked": "^0.3.6", 
    "marko": "^4.0.0-rc.18", 
    "marko-widgets": "^6.6.0" 

Also wie, um den Listener für Ereignisse des Lebenszyklus zu implementieren?

Antwort

0

Ich bin mir nicht ganz sicher, was die Frage ist, aber mit marko v4 sollte marko-widgets nicht mehr installiert werden (nur marko sollte installiert sein).

npm uninstall marko-widgets --save 

Wir sind noch im Prozess der Fertigstellung der v4 Dokumentation, aber vielleicht die folgenden v4 docs auf Komponente Lifecycle-Methoden helfen würde: https://github.com/marko-js/marko/blob/9b6a288d83fef926590f24368a40476c5ff0e240/docs/06-components.md#lifecycle

Wenn die Dinge sind immer noch Sie werden folgendes tun wollen Unklar, bitte mach mit im Gitter Chatroom:

+0

Danke Patrick, geh jetzt nach Gitter! Also, ich fragte nach der Konstruktor-Methode .. finden Sie in der v4-Dokumentation. Vielen Dank! –