1

我在使用产量和更新标签时遇到问题,请参阅示例http://codepen.io/Pysta/pen/pEyoBY

<script type="riot/tag">
  <maintag>

    <yieldtag name='yield_tag'>
      <select>
        <option each={ items }>{ value }</option>
      </select>

    </yieldtag>


    var self = this;
    self.items = [
        {value:1},
        {value:2},
            {value:3},
        {value:4}
    ];
        self.items = [];

    this.on('mount', function () {
        var oReq = new XMLHttpRequest();
      oReq.addEventListener("load", reqListener);
      oReq.open("GET", "/api/category/0");
      oReq.send();
    });

    function reqListener(e) {
        console.log('load');
        self.items = [
        {value:1},
        {value:2},
            {value:3},
        {value:4}
      ];
        self.update(); 
    }

  </maintag>
</script>


<script type="riot/tag">
  <yieldtag>
    <yield />
  </yieldtag>
</script>

<maintag></maintag>

如果我立即加载数据(带有“self.items = [];”的注释行),它会按预期工作,但是当我发出请求并异步更新它时,没有任何变化。

如果我从 maintag 中删除 yieldtag,它就可以工作。

任何帮助/建议表示赞赏。

4

1 回答 1

0

如果您更改each={ items }each={ parent.items }它将按预期工作

令人困惑的<yield />是,您是<maintag><yieldtag>. 该items数组存在于 的上下文中<maintag>,它是<yieldtag>挂载后的父级。

有关嵌套标签的更多信息,请参阅Riot 文档

于 2017-03-24T19:44:36.850 回答