首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LassoJS和Marko-小部件

LassoJS和Marko-小部件
EN

Stack Overflow用户
提问于 2017-02-24 18:09:58
回答 2查看 203关注 0票数 1

伙计们,我有点小噩梦了。开始使用makoJs和Marko-widgets。但是..。

这是我所遵循的一些示例的组织,并与lassoJS集成。因此,在套索方式中,我无法实现定义组件方法。

所以我需要做的是:

代码语言:javascript
复制
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;
    }
});

我的Marko文件是这样写的:

代码语言:javascript
复制
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>

编辑:所以我在想,知道我使用的这些模块的版本可能会有所帮助。

代码语言:javascript
复制
    "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"

那么,如何实现生命周期事件的侦听器呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-26 02:15:16

我不太确定问题是什么,但是对于marko v4,不应该再安装marko-widgets (只应该安装marko )。您将需要执行以下操作:

代码语言:javascript
复制
npm uninstall marko-widgets --save

我们仍在最后确定v4文档的过程中,但以下关于组件生命周期方法的v4文档可能会有所帮助:https://github.com/marko-js/marko/blob/9b6a288d83fef926590f24368a40476c5ff0e240/docs/06-components.md#lifecycle

如果还不清楚,请加入吉特聊天室:https://gitter.im/marko-js/marko

票数 0
EN

Stack Overflow用户

发布于 2018-11-09 09:42:33

一个小细节,但它与事件有关,所以可能:

代码语言:javascript
复制
<button type="button" onClick("handleIncrementClick", -1)>

我想这个事件的名字是on-click

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42435888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档