首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Ember Octane组件传递数据时不需要的双向数据绑定

向Ember Octane组件传递数据时不需要的双向数据绑定
EN

Stack Overflow用户
提问于 2020-11-18 20:03:46
回答 1查看 133关注 0票数 0

我在Embercasts上学习了完整的Stack Ember with Rails课程。由于他们还没有使用辛烷,我在必要的地方修改了代码以使用Ember 3.22。我被困在视频22中,我需要将数据传递给组件。这些数据应该只传递给组件,但是当更新其中的值时,我不希望在其他地方看到更改。

在视频中,这是在didReceiveAttrs()处理程序中处理的,但这在Octane中不可用。相反,Ember文档将one way data flow描述为自动发生的事情。在我的例子中,它不是:

代码语言:javascript
复制
{{! author.edit.hbs !}}

<h3>Editing: {{model.last}},  {{model.first}}</h3>
<AuthorForm @author={{model}} />

{{! author-form.hbs !}}

<div class="field">
  <label for="first">First name</label>
  <Input @id="first" type="text" placeholder="First name" @value={{this.author.first}}/>
</div>  

<div class="field">
  <label for="last">Last name</label>
  <Input @id="last" type="text" placeholder="Last name" @value={{this.author.last}}/>
</div>

每当我更改组件输入之一中的值时,h3就会更新。这是怎么回事?

EN

回答 1

Stack Overflow用户

发布于 2020-11-19 00:14:16

Ember.js附带的<Input>组件对值使用双向数据绑定。

传递给组件的参数是不可变的。您不能更改this.args,也不能更改通过@传递的值。但作为参数值传入的对象不会被冻结。

以此模板为例:

代码语言:javascript
复制
<Input @value={{@post.title}}/>

它不会改变@post,但会改变作为@post参数传入的对象的title属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64892744

复制
相关文章

相似问题

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