我有一个包含曲面的自定义视图。我需要将表面事件传递给父视图。我可以从视图外部轻松完成此操作,但是如何从视图中执行此操作?这是我的自定义视图,代码不起作用:
define([
"famous/core/view",
"famous/core/Surface",
"famous/modifiers/StateModifier"
], function(View, Surface, StateModifier){
function _createContainer() {
var self = this;
var container = new Surface({
classes: ['blue-bg'],
content: 'HERE IS A LOVELY BIT OF CONTENT FOR MY SURFACE'
});
// THIS DOESN'T WORK, BUT ILLUSTRATES WHAT I'M NEEDING TO DO:
container.pipe(self);
self.containerNode.add(container);
self.form = container;
}
function FormView(){
var self = this;
View.apply(self, arguments);
var containerMod = new StateModifier({
size: self.options.size
});
self.containerNode = self.add(containerMod);
_createContainer.call(self);
}
FormView.prototype = Object.create(View.prototype);
FormView.prototype.constructor = FormView;
FormView.DEFAULT_OPTIONS = {
size: [300, 800]
};
return FormView;
});
以下是可行的示例代码,但我希望从内部视图中执行此操作:
var myView = new View();
mainContext.add(myView);
var surface = new Surface({
size: [100, 100],
content: 'click me',
properties: {
color: 'white',
textAlign: 'center',
backgroundColor: '#FA5C4F'
}
});
myView.add(surface);
surface.pipe(myView);
答案 0 :(得分:1)
在自定义视图FormView
中,您需要管道到视图的事件处理程序。这样,当Scrollview添加到曲面时,可以看到视图的事件。
更改
container.pipe(self);
到
container.pipe(self._eventOutput);