为什么在每个ember循环中都无法访问控制器的属性?在我们的例子中, priorsAlphabetical 是控制器的属性。
each conditionsAlphabetical itemController="booleanRadio"
.col-xs-6.col-lg-5.option-value: .option-value-content
partial "boolean-radio"
if value
a.add-note-link click="addConditionPrior this target='view'"
span.icon-newspaper-alt.newspaper-color
if-existing-prior param1=name param2=priorsAlphabetical
a.add-note-link click="addConditionPrior this target='view'"
span.icon-newspaper-alt
此处 priorsAlphabetical 在每个循环中为空。但是 priorsAlphabetical 可以在每个循环之外访问。
答案 0 :(得分:2)
each
助手正在将当前范围从控制器更改为当前循环的对象,因此在块内部尝试从每个条件对象中检索priorsAlphabetical。
#this context is the controller
each conditionsAlphabetical
=name #this context is each condition
这是each
助手的一个有点令人困惑的功能,因此将不推荐使用Ember 2.0
要解决您的问题,请使用each condition in conditionsAlphabetical
帮助程序,它将控制器保留为当前作用域。
#this context is the controller
each condition in conditionsAlphabetical
=name #this context is still the controller
所以在你的特定情况下:
each condition in conditionsAlphabetical itemController="booleanRadio"
.col-xs-6.col-lg-5.option-value: .option-value-content
partial "boolean-radio"
if condition.value
a.add-note-link click="addConditionPrior condition target='view'"
span.icon-newspaper-alt.newspaper-color
if-existing-prior param1=condition.name param2=priorsAlphabetical
a.add-note-link click="addConditionPrior condition target='view'"
span.icon-newspaper-alt