Ran*_*cid 2 behavior polymer-1.0
在聚合物1.0中,我有一个定义属性和方法的行为脚本:
<script>
dataBehavior = {
properties: {
data: {
type: Array,
value: null,
observer: 'dataChanged'
}
},
dataChanged: function(newValue, oldValue) {
console.log('default stuff');
}
};
</script>
Run Code Online (Sandbox Code Playgroud)
以及使用该行为的组件:
<dom-module id="my-module">
<template>
</template>
<script>
Polymer({
is: "my-module",
behaviors: [dataBehavior],
dataChanged: function(newValue, oldValue) {
// How to call the dataChanged method from dataBehavior?
// this.super.dataChanged(); <- don't works!
console.log('custom stuff');
}
});
</script>
</dom-module>
Run Code Online (Sandbox Code Playgroud)
当我更改数据属性时,执行的方法来自my-module,因此它会生成"自定义内容".如果我删除my-module中的dataChanged方法,则执行"default stuff".
如何执行默认行为的方法和组件的方法?
如果可能,我不想将代码从"dataBehavior.dataChanged"复制到"my-module.dataChanged".我想在组件的方法中调用行为的方法; 我可以使用"超级"之类的东西来引用行为脚本吗?
非常感谢你的答案!
你也可以简单地打电话dataBehavior.dataChanged.call(this, newValue, oldValue):
<dom-module id="my-module">
<template>
</template>
<script>
Polymer({
is: "my-module",
behaviors: [dataBehavior],
dataChanged: function(newValue, oldValue) {
dataBehavior.dataChanged.call(this, newValue, oldValue)
}
});
</script>
</dom-module>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2714 次 |
| 最近记录: |