如果我定义一个复选框如下:

  {{input type="checkbox" name="email" checked=controller.isEmailChecked}} Email

在回调controller.isEmailedChecked ,定义为:

isEmailChecked: function(key, value) {
 ...
}

如何获得name (“电子邮件”)的值?

我的控制器负责显示多个复选框,因此我不想写这样的行:

  {{input type="checkbox" name="x" checked=controller.isXChecked}} X
  {{input type="checkbox" name="y" checked=controller.isYChecked}} Y

只做:

ixXChecked: function(key, value) {
  // Set or Get
  this.set('x', value);
  this.get('x');
}
ixYChecked: function(key, value) {
  // Set or Get
  this.set('y', value);
  this.get('y');
}

有人可以指出我的文档吗。

编辑:同样适用于对按钮的操作:

        <button {{action 'toggleSetting'}}>
        </button>

如何获取toggleSetting回调中的元素名称?

非常感谢,

#1楼 票数:0

您可以将参数传递给这样的操作: {{action "post" "test"}} ,其中第二个测试也可以是变量。 {{action "post" mail}}

至于复选框,我将使用项目控制器来解决:

{{#each thing in things itemController='thing'}}
    {{input type="checkbox" checked=onChecked}}
{{/each}}

并且您的控制器将类似于:

App.ThingController = Ember.Controller.extend({
  needs: ['parent'] //where parent is the name of your other controller.
  action: {
    isChecked: function() {
      this.get('contollers.parent')
          .send('checkboxChecked', this.get('model.name'));
    }
  }
});

或者,您可以添加一个组件,将其named-checkbox 看起来像这样:

模板(app / templates / components / named-checkbox.hbs):

{{input name=name type="checkbox" checked=onChecked}}
{{yield}}

组件(app / components / named-checkbox.js):

import Ember from 'ember';
import layout from '../templates/components/named-checkbox';

export default Ember.Component.extend({
  layout: layout,
  name: "",
  action: {
    onChecked: function() {
      this.sendAction(this.get('action'), this.get('name'));
    }
  }
});

然后,您可以像这样使用它:

{{named-component name="email" action=isChecked}}

这将导致在控制器上使用名称作为其属性的isChecked操作被调用:

actions: {
  isChecked: function(name) {
    this.set('name', !this.get('name'))
  }
}

#2楼 票数:0

感谢albertjan,但是这更简单:

{{view Ember.Checkbox checkedBinding=someModelProperty}}

单击时会更新someModelProperty ,并且最初还会设置正确的值。

  ask by Mohamed Bana translate from so

未解决问题?本站智能推荐:

3回复

在Ember中按ID获取元素

我正在运行两个ember应用程序。 一个有以下组件: 而另一个,有这个: 我在这里无法理解的是,为什么在一个应用程序中我使用Ember.$('#wrapper')选择一个元素,另一个使用this.$('#wrapper') 。 这是关于什么的? 灰烬版? UPDATE 我
10回复

在Ember中获取当前路线名称

我需要在我的 ember 应用程序中获取当前路线名称; 我试过这个: Ember App.Router.router.currentState undefined但它对我不起作用(有可能我错过了一些东西......)我使用 Ember rc6 并且我有一个多语言应用程序; 在 application
1回复

在ember中获取动作目标元素

如何获取触发click事件的目标元素的对象。 例如,如果我有一个模板,如: 在我的控制器中我有相应的动作定义如下: 似乎事件对象没有通过,因为我曾经尝试过 更新:感谢Márcio和Jeremy。 我现在有了一个有效的解决方案。 我的模板看起来像: 我的观点如下:
2回复

获取Ember组件的名称

如果我调用Ember.inspect(component) ,我会收到如下响应: 这表明组件知道自己的名称( my-component )。 有没有办法只访问该名称?
1回复

Ember.js:将Ember.Checkbox与另一个使用其ID的元素包装在一起

我试图在Ember中使用第三方复选框,但无法使其正常工作。 第三方复选框需要这样的标记: 我认为最简单的方法是创建自己的视图FancyCheckbox来封装此模式。 主要障碍似乎是使用标签的for属性中的复选框ID。 这是我尝试过的: 这是我使用的模板: 不幸的是,这不能正确获
2回复

嵌套在活动中的Ember.checkbox不会更改值

模板: 控制器: 当我单击div时,该复选框会切换“选中”属性。 但是,当我单击ckeckbox时,没有任何反应。 可能是什么原因? 更新到jsbin的链接: http ://emberjs.jsbin.com/nuvocumuteto/1/edit?html,css,js,ou
2回复

如何在ember-cp-validations中验证checkbox,selectbox和radiobutton

我在ember js应用程序中使用ember-cp-validation进行验证。 我想验证checkbox ,选择selectbox和selectbox radiobutton 。我找不到任何示例代码来验证这些控件。 任何人都可以使用ember-cp-validation插件提供有关如何
1回复

从ember中对应的加载路线获取当前路线名称

根据 ember 文档如果路由中的任何模型钩子需要时间从服务器获取数据,ember 将插入loading路由。 例如test-loading ,那时如果我们尝试像这样获取当前路线名称,它只会返回加载路线。 例如,如果sample路由加载时间过长,ember 将转换为sample-loading直到s