0

使用 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 ''%}

部分来自。

4

1 回答 1

0

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

var textToUse = "{%element_text_or_empty%}";

应该:

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

注意缺少的“=”。

于 2016-01-04T01:17:21.850 回答