Aurelia 可能的内存泄漏

Aurelia 可能的内存泄漏,aurelia,Aurelia,我有一个表模板正在泄漏,我已将导致问题的代码精确定位到一行 <tbody> <tr repeat.for="row of workListData.rows" click.delegate='resultItemClick($event, row)'> <td repeat.for="col of workListData.col

我有一个表模板正在泄漏,我已将导致问题的代码精确定位到一行

              <tbody>
                 <tr repeat.for="row of workListData.rows" click.delegate='resultItemClick($event, row)'>                  
                    <td repeat.for="col of workListData.columns"> 
                       <template if.bind='col.name === "isChecked"'>
                          ${col.label}
                       </template>
                       <template if.bind='col.name !== "isChecked"'>              
                          **${row.Properties[col.name]}**
                       </template>
                    </td>
                 </tr>
              </tbody> 

${col.label}
**${row.Properties[col.name]}**
${row.Properties[col.name]} 这是导致问题的代码行。这一行接受当前行,并使用列名访问列的值。

好。当我嵌套repeat.for时,似乎aurelia正在泄漏

                 Leaks
                 <tr repeat.for="row of workListData.rows" click.delegate='resultItemClick($event, row)'>                  
                    <td repeat.for="col of workListData.columns"> 

                    </td>
                 </tr>

                 Does not leak
                 <tr repeat.for="row of workListData.rows" click.delegate='resultItemClick($event, row)'>                  

                 </tr>
泄漏
不漏
它肯定来自嵌套重复问题,如果我简化代码,即删除web服务等,那么它的工作就如预期的那样

我的一位同事注意到了一件有趣的事情:注释出一个不同的模板控制器也可以阻止泄漏,似乎它并不挑剔注释出哪个控制器。

好的,当我嵌套重复时,似乎aurelia正在泄漏。例如

                 Leaks
                 <tr repeat.for="row of workListData.rows" click.delegate='resultItemClick($event, row)'>                  
                    <td repeat.for="col of workListData.columns"> 

                    </td>
                 </tr>

                 Does not leak
                 <tr repeat.for="row of workListData.rows" click.delegate='resultItemClick($event, row)'>                  

                 </tr>
泄漏
不漏
它肯定来自嵌套重复问题,如果我简化代码,即删除web服务等,那么它的工作就如预期的那样


我的一位同事注意到了一些有趣的评论,一个不同的模板控制器也可以阻止泄漏,似乎它并不挑剔哪个控制器被评论掉。

最终找到了泄漏,似乎我有一对,但是可以肯定的是,如果你在模板中这样做,aurelia似乎有一个非常糟糕的泄漏倾向

${row.Properties[key]}

不过,我不确定这是否受支持


现在,我将对象和键传递给一个函数,并返回解决问题的值

最终找到了漏洞,似乎我有一对漏洞,但可以肯定的是,如果在模板中执行此操作,aurelia似乎有非常糟糕的漏洞倾向

${row.Properties[key]}

不过,我不确定这是否受支持


现在,我将对象和键传递给一个函数,并返回解决问题的值

试试这个,看看它是否有什么不同:
${col.name===='isChecked'?col.label:row.Properties[col.name]}
。删除两个模板Sok将需要再次更新,考虑到注释指出该行阻止了泄漏,但可能是其他原因确定它在某个地方的代码块中,考虑它到底是“泄漏”的吗?抱歉,伙计们将不得不进行更多的调查,认为它在该代码块中,但现在不确定。它肯定在那个模板的某个地方。当我更改路线时,旧模板会保存在内存中,因此每次导航时,我都会在内存中保存该模板的另一个版本。如果我从模板中删除所有html,问题就会消失。我以前看到过很多分离的文档片段,这在aurelia中是否正常?我想我现在发现了问题。当您嵌套repeat.for时,aurelia似乎会泄漏。试试这个,看看是否有什么不同:
${col.name==='isChecked'?col.label:row.Properties[col.name]}
。删除两个模板Sok将需要再次更新,考虑到注释指出该行阻止了泄漏,但可能是其他原因确定它在某个地方的代码块中,考虑它到底是“泄漏”的吗?抱歉,伙计们将不得不进行更多的调查,认为它在该代码块中,但现在不确定。它肯定在那个模板的某个地方。当我更改路线时,旧模板会保存在内存中,因此每次导航时,我都会在内存中保存该模板的另一个版本。如果我从模板中删除所有html,问题就会消失。我以前看到过很多分离的文档片段,这在aurelia中是否正常?我想我现在发现了问题。当您嵌套repeat.for时,aurelia似乎会泄漏。