NativeScript Angular 2禁用在ios

时间:2016-08-12 00:10:18

标签: angular nativescript angular2-nativescript

有人知道如何在导航到新页面后禁用后滑动吗?

我读到了这个:http://docs.nativescript.org/angular/core-concepts/angular-navigation#clearing-page-navigation-history

  

清除页面导航历史记录在NativeScript的页面导航中,   您可以选择导航到另一个页面并清除页面   导航历史。这意味着用户将无法前往   返回使用后退按钮(或在iOS中向后滑动)。这很有用   您有登录页面并且不希望用户的情况   能够在登录后再回到它。   但我希望在用户点击退出时返回登录页面。

我有2页,LoginPage和FirstPage。我正在使用RouterExtensions。所以this.nav.navigate([“/ firstPage”],{clearHistory:true}); 这很有效。 在第二页,我有一个按钮,转到this.nav.navigate([“/”])(所以回到登录页面)。但是我得到了

  

8月11日19:30:26 antons-MBP appname [62814]:CONSOLE ERROR   file:///app/tns_modules/zone.js/dist/zone-node.js:421:23:错误:   未捕获(承诺):TypeError:undefined不是对象   (评估'cacheItem.reusedRoute')

2 个答案:

答案 0 :(得分:0)

我在导航到新页面时测试clearHistory,似乎一切都按预期工作。您能否验证是否使用最新的CLI和模块。您可以在此处找到说明,其中描述了如何升级到最新的NativeScript。关于这一点,您需要升级激动人心的项目中的tns-core-modulesnativescript-angular,您可以按照下面的说明进行操作。

  1. tns plugin remove tns-core-modules
  2. tns plugin add tns-core-modules@2.2.0
  3. tns plugin remove nativescript-angular
  4. tns plugin add nativescript-angular@0.3.0
  5. 您还可以查看我的示例应用here,以及如何在NativeScript Angular中使用clearHistory

答案 1 :(得分:0)

我可以通过插入以下代码来禁用每页的滑动手势

constructor(private nav: RouterExtensions) {

    this.nav.frame.ios.controller.interactivePopGestureRecognizer.enabled = false;

  }

这种方式我不需要修改库,但缺点是我必须在每个我希望后面滑动工作的页面上重新启用“interactivePopGestureRecognizer”。