Angular 2 - 如何在模板中将 "checked" 属性传递给子项?

Angular 2 - How to pass "checked" attribute to child in template?

我有一个自定义指令 <foo checked></foo>。在 foo 的模板中,我有 <input type="checkbox">。如果 checkedfoo 上,我想要 <input type="checkbox" checked>。我还没有看到如何处理这些没有值的属性、检测它们并在它们存在时用它们标记子元素。

感谢您提供帮助。

尝试以下操作:

这里还有一个笨蛋:https://plnkr.co/edit/1JTijgHGvIGYMpDYC2i8?p=preview

import {Component,Attribute} from 'angular2/core'

@Component({
  selector: 'child',
  providers: [],
  template: `
    <div>
      <input type="checkbox" [checked]="isChecked">
    </div>
  `,
  directives: []
})
export class Child { 
  isChecked;
  constructor(@Attribute("checked") checked) {
    this.isChecked = !(checked === null);
  }
}

@Component({
  selector: 'my-app', 
  providers: [],
  template: `
    <div>
      <child checked></child>
      <child></child>
    </div>
  `,
  directives: [Child]
})
export class App {
}

我认为根据您的要求,在您的指令构造函数中您可以:-

Foo 指令 -

import {Directive, Attribute} from 'angular2/core';
@Directive({
    selector:   'foo'
})
export class foo {
     constructor(@Attribute('checked') checked: string) {
            if (checked === null){
              //checked is not present
            }else{
              //checked is present
            }
...
    }
....
}

并且,您可以使用 -

<foo checked></foo>