2017-02-24 3 views
1

Alors les gars, je suis dans un petit peu de cauchemar ici. Commencer à utiliser makoJs et Marko-widgets jusqu'à présent. Mais ...LassoJS et Marko-WIdgets

C'est la chose que je suis l'organisation de certains échantillons et l'intégration avec le lassoJS. Donc, dans la façon de faire les choses au lasso, je ne parviens pas à implémenter les méthodes des composants de définition.

donc ce que je dois accomplir:

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; 
    } 
}); 

Mon fichier Marko est écrit comme ceci:

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: Je pensais, savoir quelle version de ces modules I » J'utiliserais pourrait aider.

"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" 

Alors, comment implémenter l'écouteur pour les événements du cycle de vie?

Répondre

0

Je ne suis pas tout à fait sûr de la question, mais avec marko v4, marko-widgets ne devrait plus être installé (seulement marko doit être installé). Vous aurez envie de faire ce qui suit:

npm uninstall marko-widgets --save 

Nous sommes encore en train de finaliser la documentation v4, mais peut-être les docs v4 suivantes sur les méthodes du cycle de vie des composants aiderions: https://github.com/marko-js/marko/blob/9b6a288d83fef926590f24368a40476c5ff0e240/docs/06-components.md#lifecycle

Si les choses sont encore pas clair, s'il vous plaît joindre dans la salle de chat Gitter: https://gitter.im/marko-js/marko

+0

Merci Patrick, aller à Gitter en ce moment! Donc, je demandais à propos de la méthode constructeur .. il suffit de trouver dans la documentation v4. Merci! –