离子视图app $ state.go和ui-sref无法正常工作

时间:2015-10-22 11:43:24

标签: javascript iphone angularjs ionic-framework ionic-view

当我尝试更改IO&#S; S的离子视图应用程序上的视图时,我遇到了问题(我不会证明Android应用程序)。我发现这是一个应用程序错误,它有一个解决方案,但这对我不起作用。

info bug:https://blog.appery.io/2015/09/how-to-fix-ios9-angular-webview-issue/ 信息错误2:http://blog.ionic.io/ios-9-potential-breaking-change/

我的离子信息是:

Cordova CLI: 5.3.3
Ionic Version: 1.1.0
Ionic CLI Version: 1.7.7
Ionic App Lib Version: 0.6.3
ios-deploy version: 1.8.2 
ios-sim version: 5.0.2 
OS: Mac OS X El Capitan
Node Version: v4.1.1
Xcode version: Xcode 7.0.1 Build version 7A1001

我的app.js是:

$stateProvider

      .state('landing', {
        url: '/',
        templateUrl: 'templates/landing/landingView.html',
        controller: 'landingController'
      })
      .state('login', {
        url: '/login',
        templateUrl: 'templates/landing/login/loginView.html',
        controller: 'loginController'
      })
      .state('register', {
        url: '/register',
        templateUrl: 'templates/landing/register/registerView.html',
        controller: 'registerController'
      })
      .state('forget', {
        url: '/forget',
        templateUrl: 'templates/landing/forget/forgetView.html',
        controller: 'forgetController'
      })
      .state('index', {
        abstract: true,
        //url: '/',
        views: {
          '@' : {
            templateUrl: 'templates/abstractView.html',
            controller: 'AppCtrl'
          },
          'sideNavMenu@index': {
            templateUrl: 'templates/modules/sideBar/sideNavBar.html',
            controller: 'sideNavController'
          },
          'footerMenu@index': {  //tabs views
            templateUrl: 'templates/modules/footerMenu/footerMenu.html',
            controller: 'footerMenuController'
          }
        }
      })
      .state('tab1', {
        parent: 'index',
        abstract:true,
        url: '/tab1',
        views: {
          'tab1View@index': {
            templateUrl: 'templates/tab1/tttt.html',
            controller: 'tabs1Controller'
          }
        }
      })
      .state('tab2',{
          parent: 'tab1',
          url: '/tab2',
          views:{
              'tab2View@index': {
                  templateUrl: 'templates/tab2/tttt.html',
                  controller: 'tab2Controller'
              }
          }
      })
      .state('tab3',{
          parent: 'tab1',
          url: '/tab3',
          views:{
              'tab3View@index': {
                  templateUrl: 'templates/tab3/tttt.html',
                  controller: 'tab3Controller'
              }
          }
      })
      .state('tab4',{
          parent: 'tab1',
          url: '/tab4',
          views:{
              'tab4View@index': {
                  templateUrl: 'templates/tab4/rrr.html',
                  controller: 'tab4Controller'
              }
          }
      })

      .state('subtabs', { //tabs inside tabs
        parent: 'tab1',
        abstract:true,
        url: '/subtabs'
      })
      .state('subtabs.subtab1',{
        parent: 'subtabs',
        url: '/subtab1',
        views: {
          'subtab1@mobile': {
            templateUrl: 'templates/subtab/tab1/tab1.html',
            controller: 'subtab1Controller'
          }
        }
      })
      .state('subtabs.subtab2',{
        url: '/subtab2',
        views: {
          'etcetc@torneos.disponibles':{
            templateUrl: 'templates/subtab2/subtabs21/ssss.html',
            controller: 'subtab21Controller'
          },
          'etc1etc2@mobile': {
            templateUrl: 'templates/subtab2/subtabs22/ddddd.html',
            controller: 'subtab22Controller'
          }

        }
      })
      .state('subtabs.subtab3',{
        parent: 'subtabs',
        url: '/subtab3',
        views: {
          'etcetc3@mobile': {
            templateUrl: 'templates/subtab/subtabs3/asdasd.html',
            controller: 'subtab3Controller'
          }
        }
      })

显然,名字和名字都是假货......这个有真实姓名的州对我有用,我只想解释这个想法。

我有一个登陆:登录,注册等视图,当我在转到索引页面等后传递此视图时, 这个索引页面是一个带有标签的抽象视图(4个标签),在一个标签中我再次有标签。

我使用模块的子视图渲染标签。 我的问题是在浏览器和Xcode调试模拟等工作......但在离子视图应用程序中它不起作用。 (我尝试补丁,它根本不工作)。 我用href,ui-sref,state.go()......来证明这一点。 我需要帮助

谢谢! =)

1 个答案:

答案 0 :(得分:0)

有类似的问题。 我建议做什么:

  1. 应用补丁:https://gist.github.com/IgorMinar/863acd413e3925bf282c 只需将它放在项目目录中,在离子项目中为index.html添加<script src=...>,在app.js中添加依赖项:angular.module('myApp', ['ngRoute', 'ngIOS9UIWebViewPatch'])
  2. [您的离子项目] / www / lib / js / angular 中下载并替换最新的角度(https://code.angularjs.org/1.4.7/) 文件是: angular-animate.js,angular-sanitize.js,angular.js
  3. 包含它们而不是 ionic-bundle.js ,因此您的index.html头部将如下所示:

        

    <script src="lib/ionic/js/ionic.js"></script>
    <script src="lib/ionic/js/ionic-angular.js"></script>
    
    <script src="lib/ionic/js/angular-ui/angular-ui-router.js"></script>
    
    <script src="angular-ios9-uiwebview.patch.js"></script>
    <!-- cordova script (this will be a 404 during development) -->
    <script src="cordova.js"></script>
    
  4. 将XCode更新为7.1

  5. [your ionic project] / platforms / ios 中打开项目 [您的项目名称] .xcodeproj 。 XCode将提供修复一些警告,请执行此操作,仅适用于任何情况。
  6. 从XCode编译并运行项目
  7. 完成所有步骤后,我的项目开始工作