我有一个带有属性响应的模型,其中包含一个具有各种键和嵌套级别的json。
我可以将一个输入字段绑定到一个缺少一级的键,但不能绑定更多
例如,如果在加载模型之后
model.response = { key1: { c1: 12} }当然,我能做到
{{ input value = model.reponse.key1.c1}}并在输入字段中看到12
但是,我能做到
{{ input value = model.reponse.key1.miss1}}当我保存模型时,它将被记录下来,并在页面重新加载时找到
但我做不到
{{ input value = model.reponse.misskey1.miss2}}有两个层次的缺失。
不仅值不会保存,而且模型上具有依赖键'reponse.misskey1.miss2‘的计算属性永远不会在输入更改时触发
我是否需要设置所有丢失的关键点,或者是否有其他方法可以使其正常工作?
在这种情况下,我应该使用unknwonProperty处理程序吗?
谢谢
发布于 2016-10-03 02:27:42
我们在一个项目中使用了setUnknownProperty (或unknownProperty)。我们没有让它变得递归,它只提供了一个级别的未知属性。(这对我们来说已经足够了。)因此,开发人员可以像这样快速生成crud屏幕:
{{our-input-component "item.x" label=(t "intl.item.x")}}
{{our-input-component "item.y" label=(t "intl.item.y")}}我们试过了,它已经工作了大约八个月,没有任何问题。
但是,这是双向绑定。您应该避免使用双向绑定。这会导致您的应用程序违反数据向下操作向上原则。
Ember输入帮助器的常见用法与您的相同。(value = model.reponse.misskey1.miss2)您应该使用单向绑定进行值赋值,并且应该处理更改/输入事件,以便在这些事件/操作处理程序中进行属性赋值。或使用其他构件族,如ember-one-way-controls。
发布于 2016-10-03 02:46:10
我已经在模型的ready()回调中使用了它,并且它可以工作
if (this.get('response.misskey1') === undefined){
this.set('response.misskey1', {})
}https://stackoverflow.com/questions/39818810
复制相似问题