我有一个 ArrayController 并{{#each item in controller}}
用于迭代控制器中的项目。这在使用相同的控制器时工作正常,但是在切换到另一条路线后,我遇到了一些奇怪的行为,导致项目无法重新渲染。切换到{{#each item in controller.content}}
解决了这个问题。但是我不确定这是怎么发生的。
每个表达式(或其他任何地方)中的 controller 和 controller.content 有什么区别。
我有一个 ArrayController 并{{#each item in controller}}
用于迭代控制器中的项目。这在使用相同的控制器时工作正常,但是在切换到另一条路线后,我遇到了一些奇怪的行为,导致项目无法重新渲染。切换到{{#each item in controller.content}}
解决了这个问题。但是我不确定这是怎么发生的。
每个表达式(或其他任何地方)中的 controller 和 controller.content 有什么区别。
每个表达式(或其他任何地方)中的 controller 和 controller.content 有什么区别。
基本上没有区别,例如当使用ArrayController
which extends from时ArrayProxy
,控制器内部的this.pushObject(obj)
行为将与 do 相同this.get('content').pushObject(obj)
。请参阅此处以供参考。
但是 IMO 你最好在model
任何地方使用,例如{{#each item in model}}
。还要检查这个我认为会有用的答案:Ember 迭代:何时使用 #each 用户、控制器中的 #each 用户、模型中的 #each 用户等
希望能帮助到你。