Angular2如何在平原JS中定义输入属性

我想使用plain JS(而不是typcript)为我的组件指定一个Input属性.

我唯一可以找到的文件是(来自Angular2 cheat sheet):

ng.core.Input(myProperty,myComponent); 
//Declares an input property that we can 
//update via property binding (e.g. <my-cmp [my-property]="someExpression">).

我在我的组件的构造函数中尝试过:

.Class({
   constructor: function () {    
       ng.core.Input(this.name,this);        
   }
});

但是,它不起作用(也不报告任何错误).

我究竟做错了什么?

@H_502_16@ 对于这些情况,您具有输入和输出属性.请注意,对于TS情况,注释是单数(输入和输出),并且使用简单的JS它们是复数(输入和输出).
var Children = ng.core.
  Component({
    inputs : ['myValue'],// Equivalent to @Input('myValue')
    outputs : ['emitValue'] // Equivalent to @Output() emitValue;
  }).
  Class({
    constructor: function() {
      // Initialize emitValue
      this.emitValue = new ng.core.EventEmitter();
    },// Available at ngOnInit lifecycle
    ngOnInit : function() { 
      console.log(this.myValue);
    },// Value that the component will emit
    emit : function() {
      this.emitValue.emit('This is some value from children');
    }
  });

使用输入,您可以使用语法[internalValue:externalValue],这将基本上可以让您做到这一点

<another-cmp [externalValue]="someExpression"></another-cmp>

.Component({
  inputs : ['internalValue: externalValue']
})
.Class({
  ngOnInit : function() {

    // 'internalValue' contains 'externalValue' value
    console.log(this.internalValue); 
  }
})

而对于父组件

var Parent = ng.core.
    Component({
        selector: 'cmp',template : `
            <another-cmp [myValue]="myValue" (emitValue)="printValue($event)">
            </another-cmp>
            What does my children have to say? {{childrenValue}}
        `,directives : [Children]
    }).
    Class({
        constructor: function() {
            this.myValue = 'Some value to pass to children';
        },printValue : function(value) {
            this.childrenValue = value;
        }
});

这是一个plnkr的案例.我希望它有帮助.

相关文章

AngularJS 是一个JavaScript 框架。它可通过 注:建议把脚本放在 元素的底部。这会提高网页加载速度,因...
angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题。出现这个的原因是:由于...
AngularJS 通过被称为指令的新属性来扩展 HTML。AngularJS 指令AngularJS 指令是扩展的 HTML 属性,带有...
AngularJS 使用表达式把数据绑定到 HTML。AngularJS 表达式AngularJS 表达式写在双大括号内:{{ expres...
ng-repeat 指令可以完美的显示表格。在表格中显示数据 {{ x.Name }} {{ x.Country }} 使用 CSS 样式为了...
$http是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。读取 JSON 文件下是存储在web服务器上...