0

我有一个包含字段的集合;姓名、姓氏和形象。

当我在#each 循环中使用它时,当获取新数据时,#each 循环会重绘图像。“#isolate”不适用于它。

每个新记录出现在页面上,图像都会重新绘制。

<head>
  <title>image</title>
</head>

<body>
    {{> records}}
</body>

<template name="records">
    <table>
        {{#each records}}
        <tr>
            <td>{{name}}</td>
            <td>{{surname}}</td>
            <td><image src="/{{src}}" /></td>
        </tr>
        {{/each}}
  </table>  
</template>

我该如何解决?

对不起我的英语不好 :)

谢谢大家

4

2 回答 2

1

您可以通过将模板分成两部分来解决此问题。当它们分开时,meteor 只会更新已更改的记录。

<template name="records">
    <table>
    {{#each records}}
      {{>record}}
    {{/each}}
    </table>  
</template>

<template name="record">
    <tr>
      <td>{{name}}</td>
      <td>{{surname}}</td>
      <td><image src="/{{src}}" /></td>
    </tr>
</template>
于 2013-10-01T07:34:44.960 回答
0

如果您完全想摆脱这里的任何反应,请务必{{#isolate}}正确使用:

这将防止重新渲染(即)records.insert(...);

<template name="records">
    <table>
        {{#isolate}}
        {{#each records}}
        <tr>
            <td>{{name}}</td>
            <td>{{surname}}</td>
            <td><image src="/{{src}}" /></td>
        </tr>
        {{/each}}
        {{#isolate}}
    </table>  
</template>

但这不会:

<template name="records">
    <table>
        {{#each records}}
        {{#isolate}}
        <tr>
            <td>{{name}}</td>
            <td>{{surname}}</td>
            <td><image src="/{{src}}" /></td>
        </tr>
        {{#isolate}}
        {{/each}}
    </table>  
</template>
于 2013-10-01T07:42:38.557 回答