我在模型上有一个计算属性,为了计算我需要来自控制器(不是控制模型的那个)的属性。我知道有,needs:
但这只是在
控制器级别。
我如何从管理模型的控制器以外的控制器获取 Ember 中的属性?
我正在尝试像[问这个问题] [1]的人那样进行一些格式化,但我没有成功那里的建议。
因此,我尝试使用计算属性对模型进行格式化,但要计算该属性,我需要来自控制器的另一个属性。
任何帮助是极大的赞赏!谢谢!
注意:我使用 EmberData 来管理模型。
编辑:
为了澄清我正在尝试做的事情,我设置了一个以一般方式显示问题
的示例:示例应用程序允许您输入数字、存储它们
并在列表中显示它们。您还可以输入一个“转换因子”,它不会改变模型数据本身,而是模板上的表示。假设您输入数字 2,2 会保存在模型中,但是当它显示在列表中时,它会使用您之前输入的转换因子“格式化”,并且计算值显示在模板中。问题是我要格式化的值存储在不同的控制器上。这是我到目前为止所尝试的:
#1 方法:
ArrayController 上的计算属性-needs:
在控制器中使用来遍历并获取值
-> jsfiddle
我遇到的问题:
ArrayController 似乎中断并且模板呈现好像根本没有存储记录(注意:该示例使用本地存储,因此创建一些记录并取消注释 ArrayController 上的计算属性,您将看到它最初按预期工作并显示您输入的记录)。#2 方法:
模型本身的计算属性
--> jsfiddle
我遇到的问题:
我不知道如何在模型内部运行时从控制器获取属性- #3 方法:
Handlebars Helper 和needs:
控制器上
1)在控制器(处理模型)上定义一个计算属性以从另一个控制器获取有问题的值
2)创建一个 Handlebars 助手并从模型中传递值并来自控制器的值并返回计算值
--> jsfiddle(您可以在评论中找到第三个 jsfiddle 的链接,因为我还没有足够的声誉点)。
我遇到的问题:我没有
显示格式化的数字,而是在渲染模板中的每个值上得到“NaN”。
如果有人知道如何解决这个问题或者可以指出我正确的方向,那就太好了。非常感谢您的帮助!谢谢你的时间!