首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >emberjs设置深度嵌套的未定义键

emberjs设置深度嵌套的未定义键
EN

Stack Overflow用户
提问于 2016-10-02 23:54:54
回答 2查看 81关注 0票数 0

我有一个带有属性响应的模型,其中包含一个具有各种键和嵌套级别的json。

我可以将一个输入字段绑定到一个缺少一级的键,但不能绑定更多

例如,如果在加载模型之后

代码语言:javascript
复制
model.response = { key1: { c1: 12} }

当然,我能做到

代码语言:javascript
复制
{{ input value = model.reponse.key1.c1}}

并在输入字段中看到12

但是,我能做到

代码语言:javascript
复制
{{ input value = model.reponse.key1.miss1}}

当我保存模型时,它将被记录下来,并在页面重新加载时找到

但我做不到

代码语言:javascript
复制
{{ input value = model.reponse.misskey1.miss2}}

有两个层次的缺失。

不仅值不会保存,而且模型上具有依赖键'reponse.misskey1.miss2‘的计算属性永远不会在输入更改时触发

我是否需要设置所有丢失的关键点,或者是否有其他方法可以使其正常工作?

在这种情况下,我应该使用unknwonProperty处理程序吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-10-03 02:27:42

我们在一个项目中使用了setUnknownProperty (或unknownProperty)。我们没有让它变得递归,它只提供了一个级别的未知属性。(这对我们来说已经足够了。)因此,开发人员可以像这样快速生成crud屏幕:

代码语言:javascript
复制
{{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

票数 1
EN

Stack Overflow用户

发布于 2016-10-03 02:46:10

我已经在模型的ready()回调中使用了它,并且它可以工作

代码语言:javascript
复制
 if (this.get('response.misskey1') === undefined){
         this.set('response.misskey1', {})
      }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39818810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档