javascript - 如何在 famo.us 中关闭一个 View 并显示另一个 View

标签 javascript hybrid-mobile-app famo.us

我有一个由不同表面组成的 View ,我希望我的应用程序关闭此 View 并通过单击第一个 View 上的按钮来显示另一个 View ,但我不知道如何关闭第一个 View

这是我的代码:

   var Engine = require('famous/core/Engine');
var Surface = require('famous/core/Surface');
var View = require('famous/core/View');

var mainContext = Engine.createContext();

var myView = new View();
var SecondView=new View();
mainContext.add(myView);


var surface = new Surface({
  size: [100, 100],
  content: 'click me',
  properties: {
    color: 'white',
    textAlign: 'center',
    backgroundColor: '#FA5C4F'
  }
});
var surface2= new Surface({
  content:'hi',
  size:[100,100],
  properties:{
    backgroundColor:'pink'
  }
});

myView.add(surface);
SecondView.add(surface2);

surface.pipe(myView);



surface.on('click',function(){
 mainContext.add(SecondView)

});

surface2.on('click',function(){
 mainContext.add(myView)

});

现在,它第一次工作了!它从 myView 转到第二个 View ,然后它会返回,但是如果您第二次单击该表面,它将不起作用!我觉得我应该删除 myView,然后显示 SecondView 才能正常工作,但我不知道如何!

最佳答案

我希望您使用单个独立表面作为示例,并且您实际上并没有在实践中从中创建 View 。使用渲染 Controller 来显示和隐藏您的 View 。

        var renderer = new RenderContoller;
        var currentPage;

        var showPage1 = function() {
            var Page1View = require('Views/Page1View');
            currentPage = new Page1View();
            renderer.show(currentPage);

            currentPage.on('linkClick', function(){
                console.log('link was clicked');
                renderer.hide();
                currentPage = null;
                showPage2();
            });

        };

showPage1 内的表面具有以下内容:

            page = this;
            component.on('click', function(){
                page._eventOutput.emit('linkClick');
            });

如果您不明白以上任何内容,希望对您有所帮助,请询问我,我会尝试进一步解释。

关于javascript - 如何在 famo.us 中关闭一个 View 并显示另一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25011114/

相关文章:

javascript - 在 Intel XDK 中使用 Cordova SQLite 获取数据没有任何作用

javascript - Angular + Ionic 模板中的条件路由

javascript - 在 famo.us 中,调整表面文本元素大小的最佳方法是什么?

javascript - 使用 Famo.us 和 Ionic

javascript - 将值从组合框发送到文本区域

javascript - 如何在云代码中使用 Parse Promise 进行循环查询?

javascript - 跨 session 保留 ACE 编辑器 UndoManager

android - PushPlugin 注册到 errorhandler 显示 'Class not found' 与 cordova 4.0.0 for android 平台

famo.us - 与 famo.us 合作的特性

javascript - 如何在 Mapbox 中将 geojson + CSV 文件与杂食动物传单连接起来,将数据映射为多边形?