- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有以下两个模型:
App.Child = DS.Model.extend({
name: DS.attr('string')
});
和:
App.Activity = DS.Model.extend({
children: DS.hasMany('child',{async:true}),
name: DS.attr('string')
});
对于 hasMany 关系,我想使用复选框在现有子项之间进行选择。
例如,我有这三个 child :
App.Child.FIXTURES = [
{ id: 1, name: 'Brian' },
{ id: 2, name: 'Michael' },
{ id: 3, name: 'James' }
];
用户应该能够在创建或编辑事件时使用复选框来选择要添加到hasMany 关系的子项。
我创建了一个 JSFiddle 来说明我的问题:http://jsfiddle.net/Dd6Wh/ .单击“创建新事件”以查看我正在尝试做什么。
基本上它与 Ember.Select [ ... ] multiple="true" 相同,但用于复选框。
使用 Ember.js 进行此类操作的正确方法是什么?
最佳答案
您可以在each
View 帮助程序中使用itemController
来管理选择。在下面的代码中,我创建了一个名为 ChildController
的代码:
App.ChildController = Ember.ObjectController.extend({
selected: function() {
var activity = this.get('content');
var children = this.get('parentController.children');
return children.contains(activity);
}.property(),
selectedChanged: function() {
var activity = this.get('content');
var children = this.get('parentController.children');
if (this.get('selected')) {
children.pushObject(activity);
} else {
children.removeObject(activity);
}
}.observes('selected')
});
使用 itemController,您可以公开一些属性和逻辑,而无需将其直接添加到您的模型中。在这种情况下,selected
计算属性和 selectedChanged
观察者。
在您的模板中,您可以使用 checkedBinding="selected"
绑定(bind)选择。因为 itemController 代理每个模型,将使用 itemcontroller 的 selected
属性,以及 {{name}}
绑定(bind),将查找模型的 name 属性:
<script type="text/x-handlebars" data-template-name="activities/new">
<h1>Create a new activity</h1>
{{#each childList itemController="child"}}
<label>
{{view Ember.Checkbox checkedBinding="selected"}}
{{name}}
</label><br />
{{/each}}
{{view Ember.TextField valueBinding="name"}}
<button {{action create}}>Create</button>
</script>
编辑模板中的相同方法:
<script type="text/x-handlebars" data-template-name="activities/edit">
<h1>Edit an activity</h1>
{{#each childList itemController="child"}}
<label>
{{view Ember.Checkbox checkedBinding="selected"}}
{{name}}
</label><br />
{{/each}}
{{view Ember.TextField valueBinding="name"}}
<button {{action update}}>Update</button>
</script>
这是一个关于这个工作的 fiddle http://jsfiddle.net/marciojunior/8EjRk/
组件版本
模板
<script type="text/x-handlebars" data-template-name="components/checkbox-select">
{{#each elements itemController="checkboxItem"}}
<label>
{{view Ember.Checkbox checkedBinding="selected"}}
{{label}}
</label><br />
{{/each}}
</script>
Javascript
App.CheckboxSelectComponent = Ember.Component.extend({
/* The property to be used as label */
labelPath: null,
/* The model */
model: null,
/* The has many property from the model */
propertyPath: null,
/* All possible elements, to be selected */
elements: null,
elementsOfProperty: function() {
return this.get('model.' + this.get('propertyPath'));
}.property()
});
App.CheckboxItemController = Ember.ObjectController.extend({
selected: function() {
var activity = this.get('content');
var children = this.get('parentController.elementsOfProperty');
return children.contains(activity);
}.property(),
label: function() {
return this.get('model.' + this.get('parentController.labelPath'));
}.property(),
selectedChanged: function() {
var activity = this.get('content');
var children = this.get('parentController.elementsOfProperty');
if (this.get('selected')) {
children.pushObject(activity);
} else {
children.removeObject(activity);
}
}.observes('selected')
});
更新 fiddle http://jsfiddle.net/mgLr8/14/
希望对你有帮助
关于javascript - Ember.js hasMany 作为复选框列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19618602/
是否可以在一个集合/json 中获取所有详细信息(用户、帖子、postimages)? 用户->hasmany(帖子) 后->hasmany(后图像) 用户: 身份证 |姓名 邮政: 身份证 |用户
我正在制作一个具有基本消息传递功能的 PHP/MySQL Web 应用程序。两个用户将能够进行包含一系列消息的“对话”。 以下是我设想的模型关系: 用户> 多对多> 对话 对话> 多对多> 用户和一对
我的问题很简单: 我有一个名为users 的表。这些用户可以有很多联系人。这些联系人是其他用户。 所以我有一个名为 userHasContacts 的表,其中包含所有者的 ID (userID) 和联
我有两个 GORM 域类。一个是卡,卡上有很多购买。有什么方法可以搜索大于或等于某些购买的卡。这可能是一个例子 我们有4张牌: Card1:橙、橙、苹果 Card2:苹果、橙子 Card3:橙色,橙色
背景: 我有三个表,即生产、生产线和操作。 生产线引用其先前的生产线,列名为“parent_id”。生产线的深度应等于操作的深度。 以下是他们的关系: Production_lines has man
我有两个表(项目、任务)。 项目表结构如下: id - title - desc - others_column 1 - title - desc - others 2 - title - des
提前感谢您的帮助。 我有两个模型菜单和窗口及其关联 db.menus.hasMany(db.windows); db.windows.belongsTo(db.windows); 我正在尝试使用与此类
使用hasMany有区别吗 static hasMany = [objects:Object] 并添加对象的集合 Set objects 最佳答案 使用之间绝对有区别: static hasMany
我有这四个类: class Animal { static hasMany = [legs: Leg] } class Cat extends Animal { static hasM
当我尝试创建与其父模型关联的子模型时遇到问题。 我有 2 个模型: 机构(有很多地址) 地址(有 1 个机构) 当我单击一个机构并转到 show.blade.php 时,我有一个表单可以为该机构创建地
我正在运行 cakephp 2.0.2,我有以下关系 Category hasMany CategoryWork Work hasMany CategoryWork Categ
是否有一个简单的解决方案可以通过模型上的 hasMany Relation 分离(不删除)所有相关模型? 例如,我有两个表: 学院(ID、名称) 学生(id、姓名、college_id(可为空)) 在
Ember Data 是否类似于 Rails 的 has_many ..., :through =>功能? 最佳答案 它不是。在 1.0 Beta 中添加了一个 Unresolved 问题。里程碑:M
我有用户表,然后是他们的兴趣表。 最好是通过表来管理 hasMany 来管理两者之间的关系,还是最好将 CSV 写入“用户”表中的一列。 到目前为止,我一直在通过表格使用 hasMany,但想知道最好
假设我有两个模型:Park 和 Items。通过 HasMany 关系,每个 Park 都可以有多个 Items。 在 Items 表中有一个 park_id 字段和一个 type 标志:一个 Ite
这是save和 saveMany HasMany 上的方法关系类,但 dissociate(Many) 在哪里?/detach(Many)方法?也没有获得逆关系方法的内置方法,那么从 HasMany
我试图让我在 CakePHP 2.3 中的关联模型正确保存,但我遇到了问题。我正在存储帖子,我想知道这些帖子中有哪些链接。对于这些链接中的每一个,如果可用,我想存储 anchor 文本。我的数据库设置
我有两个类(例如简化): public class Data { public int Id {get; set;} public string Value { get; set; }
有域对象: class Book { List pictures static hasMany = [pictures:Picture] static mappi
我正在尝试实现 HasMany与不可为空的键列的映射。 我的映射如下所示: public void Override(AutoMapping mapping) { mapping.Table(
我是一名优秀的程序员,十分优秀!