aks*_*kst 5 javascript ember.js
在ember中为组件类指定位置参数时,你必须重新打开类(如下所示),这样它才能工作,你不能将它包含在初始声明中(至少从我看到的例子和我自己的经验中看到) ).
import Ember from 'ember';
const component = Ember.Component.extend({ });
component.reopenClass({
positionalParams: ['post'],
});
export default component;
Run Code Online (Sandbox Code Playgroud)
如果你在单一声明(如下所示)中这样做,它将无法工作
import Ember from 'ember';
export default Ember.Component.extend({
positionalParams: ['post'],
});
Run Code Online (Sandbox Code Playgroud)
只是感觉很糟糕,我无法使它成为同一个表达式的一部分,并且必须将类分配给变量,重新打开它,然后最终导出它.
ember.js @ 2.2这是因为它是某种类的属性吗?
这个.该reopenClass和extend方法不这样做同样的事情.
传递给的属性reopenClass放在类本身的构造函数中:
MyClass = Ember.Object.extend({});
MyClass.reopenClass({ foo: 42 });
obj = MyClass.create();
console.log(obj.foo); // undefined
console.log(MyClass.foo); // 42
console.log(obj.constructor.foo); // 42
Run Code Online (Sandbox Code Playgroud)extend另一方面,传递给的属性在实例上可用(*):
MyClass = Ember.Object.extend({ foo: 42 });
obj = MyClass.create();
console.log(obj.foo); // 42
console.log(MyClass.foo); // undefined
console.log(obj.constructor.foo); // undefined
Run Code Online (Sandbox Code Playgroud)(*)我不知道他们是否被复制或成为原型链的一部分.
| 归档时间: |
|
| 查看次数: |
373 次 |
| 最近记录: |