RiotJS(& web2py):保持两个元素同步

时间:2016-01-04 01:01:13

标签: web2py riot.js

使用RiotJS我创建了一个简单的元素,其中包含一个contenteditable div供用户修改(myFunction将根据某些条件设置它)。

现在我希望在我的网站的开头和结尾都有这个元素,并且它们应该保持彼此同步......这有可能吗?

如果没有,是否可以进行单向数据绑定(顶部元素中的修改将显示在底部,但不一定反之亦然)?

或者也可以简单地在底部显示文字(不可编辑,而不是使用相同的暴乱元素)......

RiotJS元素:(代码功能到目前为止,在这段代码中可能会有一些小错误,因为它是我工作的减少和略微修改的版本: - )

<my-element>
  <div id="content" contenteditable="true" onkeyup="{myFunction}">{editableText}</div>
  <style>...</style>
  <script>
    this.editableText = opts.text
    ... // more content
  </script>
</my-element>

以HTML格式安装:

<html>
<!-- start of page content -->
<my-element></my-element>
<script src="{%=URL(r=request,c='static/js/riot',f='my-element.tag')%}" type="riot/tag"></script>

{%element_text_or_empty = XML(T(someText.content)) if someText else ''%}

<script>
    var textToUse = "{%=element_text_or_empty%}";
    riot.mount('my-element', {text: textToUse})
</script>

<!-- more content -->

<!-- repeat my-element with same (edited) content as above -->
<!--   what to write here?  --> 
</html> 

注意:我使用的是web2py框架,其中

{%element_text_or_empty = XML(T(someText.content)) if someText else ''%}

部分来自。

1 个答案:

答案 0 :(得分:0)

我不知道这是否是唯一的问题,但是:

var textToUse = "{%element_text_or_empty%}";

应该是:

var textToUse = "{%=element_text_or_empty%}";

请注意缺少&#34; =&#34;。