2017-06-10 60 views
1

的元素,我想这样做:RIOT.JS:显示取决于输入值

<input type="text" value={ value1 } > 
<input if={ value1 != ''} type="text"> 

因此,加入到DOM第二输入时,第一输入比空不同的任意值。我知道2路数据绑定不支持Riot.js

我试图做到以下几点:

<input ref="first" type="text" > 
<input if={ this.refs.first.value != '' } type="text"> 

但它不工作。

回答

1

你是对的,Riot不会做2路数据绑定,因为我会留给读者去研究。这是很吸引人的东西,但在我看来,通过遵循一些简单的模式,大多数Web开发可以变得非常简单。暴动因此很重要。简而言之,标签只是标记了可以更新标签的事件监听器。

<my-tag> 
    <input name='username' type='text' onKeyup={ checkVal } value={ opts.val }> 
    <input if={ usernameEntered } name='password' type='password'> 

    <script> 
    this.checkVal = (event) => { 
     this.usernameEntered = event.target.value !== '' 
     // this.update() is implicitly called in event listeners 
    } 
    </script> 
</my-tag> 

在你的情况(我不知道您的具体使用情况),您可能需要使用传递到代码(opts.val)的值来填充第一输入元件。然后我们可以在事件监听器(checkVal)和update标签中分配一些变量(usernameEntered)。

有关更多详细示例,请参阅Riot JS Guide