Ember Octane:如何在组件内遍历模型记录?
问题分析与解决建议
核心问题原因
第一种写法失效的关键是取值语法错误:在{{#each this.args.model as |location|}}的块内,你用了{{@location.title}},但location是each迭代生成的块级局部变量,不需要加@前缀。@符号在Ember模板中仅用于引用组件参数(比如@model)或模板上下文的内置变量(比如@index),迭代出来的局部变量直接用变量名即可。
修正后的第一种写法
将组件内的模板代码修改为:
{{#each this.args.model as |location|}} {{location.title}} {{/each}}
修改后就能正常获取每个location的title值。
补充说明
第二种写法可以正常工作,是因为你直接把迭代出的location变量传给子组件LocationItem时,没有错误使用@前缀,因此逻辑正常。两种写法的核心逻辑本质一致,只是第一种在取值阶段多添加了不必要的@符号导致失效。
内容的提问来源于stack exchange,提问作者Nick Kleymenov
相关产品推荐
相关产品推荐

