Ember.js 基于一组复选框获取值数组
我对Ember非常陌生,在使用JS/jQuery之前,我已经构建过几次类似的东西,但2小时后,我似乎无法以“Ember”的方式取得任何进展 我有一组从权限模型中提取的权限:Ember.js 基于一组复选框获取值数组,ember.js,Ember.js,我对Ember非常陌生,在使用JS/jQuery之前,我已经构建过几次类似的东西,但2小时后,我似乎无法以“Ember”的方式取得任何进展 我有一组从权限模型中提取的权限: [ { id : 1, permission : "Can Eat Cake", description : "User is allowed to eat cake." }, { id : 2, permission : "Can Fly", descriptio
[
{
id : 1,
permission : "Can Eat Cake",
description : "User is allowed to eat cake."
},
{
id : 2,
permission : "Can Fly",
description : "User is allowed to fly."
},
...
]
我希望允许用户检查适用于特定角色的所有内容:
// RoleCreate.hbs
{{#each model.permissions}}
{{input type="checkbox" name="rolePerm" checked=permChecked}} {{permission}}<br />
{{/each}}
我只是不知道如何将每个复选框的值获取到一个父数组,该数组可以发送到服务器以创建新角色。。。我已经设法弄明白了如何让观察者在选中/取消选中时触发,但无论我怎么做,似乎都无法获得复选框的值
// RoleCreateController
rolePermissionMgr : function() {
console.log( "Permission Checkbox Changed!" );
}.observes( 'model.permissions.@each.permChecked' )
同样,对于Ember来说,我是个新手,所以我肯定我做了一件或多件不正确的事情。你几乎做到了。我将复选框值指定给模型。我只是在触发观察者时检查每个复选框值,并使用ember的数组方法提取权限
{{{#content.permissions中的每个项目}
{{input type=“checkbox”checked=item.value}{{{item.permission}}
{{/每个}}
App.IndexRoute=Ember.Route.extend({
模型:函数(){
返回{
roleName:“Blessan”,
权限:[{
id:1,
许可:“可以吃蛋糕”,
描述:“用户可以吃蛋糕。”
},{
id:2,
权限:“可以飞”,
描述:“允许用户飞行。”
}]
};
}
});
App.IndexController=Em.ObjectController.extend({
permissionChanged:函数(){
var obj={
roleName:this.get('content.roleName'),
权限:this.get('content.permissions')
.filterBy('value',true.).mapBy('id');
};
控制台信息(obj);
}.observes('content.permissions.@each.value')
});
// RoleCreateController
rolePermissionMgr : function() {
console.log( "Permission Checkbox Changed!" );
}.observes( 'model.permissions.@each.permChecked' )
{{#each item in content.permissions}}
<li>{{input type="checkbox" checked=item.value}} {{item.permission}}</li>
{{/each}}
App.IndexRoute = Ember.Route.extend({
model: function() {
return {
roleName: 'Blessan',
permissions: [{
id : 1,
permission : "Can Eat Cake",
description : "User is allowed to eat cake."
},{
id : 2,
permission : "Can Fly",
description : "User is allowed to fly."
}]
};
}
});
App.IndexController = Em.ObjectController.extend({
permissionChanged: function() {
var obj = {
roleName: this.get('content.roleName'),
permissions: this.get('content.permissions')
.filterBy('value', true).mapBy('id');
};
console.info(obj);
}.observes('content.permissions.@each.value')
});