javascript – Ember.js:一个模型如何观察其他模型?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Ember.js:一个模型如何观察其他模型?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1720字,纯文字阅读大概需要3分钟。
内容图文
![javascript – Ember.js:一个模型如何观察其他模型?](/upload/InfoBanner/zyjiaocheng/817/3ebb15bedd87459fb2220436e64eac25.jpg)
我的源代码模型和每个细分的模型.每个来源都有很多细分.每个段都有一个切换isSelected属性的操作.
我需要保留所选段的更新列表.我的第一个想法是做一些像……
App.Source = Ember.Object.extend({
selectedSourceList = Em.A(),
selectedSourcesObserver: function() {
// code to update array selectedSourceList
}.observes('segment.isSelected')
});
..但是observes()函数不对.我是新手,所以我的做法可能完全错了.
一个模型中的方法如何观察许多其他模型的属性?
编辑:更正名称以指示段模型是针对单个段 – 而不是段的集合(这是我计划在源模型中执行的操作).
解决方法:
我认为你的问题有三个部分:
>如何观察集合
>观察员一般
>管理关系
观察一个集合
@each属性有助于观察集合中项目的属性:segments.@ each.isSelected
观察员一般
函数上的.observes()是设置观察者函数的简写.如果这个函数的目标是更新集合,那么使用.property()可以更好地服务,它可以设置一个观察者并将该函数视为属性:
selectedSegments: function() {
return this.get('segments').filterProperty('isSelected', true);
}.property('segments.@each.isSelected')
这意味着selectedSegments是此对象中被选中的段的子集,并在项目被删除或标记为选中时自动管理.
管理关系
对于普通的Ember对象,您需要管理关系,将新项目推入数组等.
segments = Em.A(), //somehow you are managing this collection, pushing segments into it
另请注意Ember Objects和Ember Models之间的区别. Ember Data是一个可选的附加库,允许指定模型和关系,并帮助您管理模型.使用Ember数据,您可能会遇到以下情况:
App.Source = DS.Model.extend({
//ember-data helps manage this relationship
// the 'segment' parameter refers to App.Segment
segments: DS.hasMany('segments'),
selectedSegments: function() {
return this.get('segments').filterProperty('isSelected', true);
}.property('segments.@each.isSelected')
});
和App.Semgent
App.Segment = DS.Model.extend({
selection: DS.belongsTo('selection')
});
内容总结
以上是互联网集市为您收集整理的javascript – Ember.js:一个模型如何观察其他模型?全部内容,希望文章能够帮你解决javascript – Ember.js:一个模型如何观察其他模型?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。