离子侧菜单和带有嵌套视图的选项卡:选项卡嵌套视图的内容未显示

2024-05-01

我对两者都是新手AngularJS and Ionic.

我正在创建一个应用程序,它具有sidemenu and tabs在菜单选项之一内。选项卡应使用以下方式呈现其内容nested view,所以没有简单的HTML here.

我可以在侧菜单选项和所有作品之间导航并正确渲染。当我进入托管选项卡的菜单选项时,问题就出现了。

虽然选项卡导航面板正确呈现并且我可以在选项卡之间导航,但不知何故选项卡的内容已创建但仍然存在无形的。如果我做一个ionic serve并检查生成的HTML with Firebug或类似的我可以看到的内容nested view生成的。只是我在浏览器上看不到它。这两种情况都发生在我身上Chromium and Firefox所以浏览器应该不是问题。尝试使用时也会发生同样的情况Android模拟器。

我首先想到一个routing问题,但这对我来说没有太大意义,因为内容是生成的(只是不可见)。

我创建了一个Plunkr http://plnkr.co/edit/Rj8Erpm5UgZNiqSwmKBN?p=preview为了重现问题,我的代码减少到最少。无论如何,我的(相关)代码如下:

索引.html

<!DOCTYPE html>
<html>

  <head>
    <meta charset="utf-8" />
    <meta content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width" name="viewport" />
    <title></title>

  <link rel="stylesheet" type="text/css" href="http://code.ionicframework.com/nightly/css/ionic.css">

  <link href="app.css" rel="stylesheet">

  <script src="http://code.ionicframework.com/nightly/js/ionic.bundle.js"></script>

    <!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
    <link href="css/ionic.app.css" rel="stylesheet">
    -->
    <!-- ionic/angularjs js -->
    <script src="lib/ionic/js/ionic.bundle.js"></script>
    <!-- cordova script (this will be a 404 during development) -->
    <script src="cordova.js"></script>
    <!-- your app's js -->
    <script src="app.js"></script>
    <script src="services.js"></script>
    <script src="controllers.js"></script>
  </head>

  <body ng-app="starter">
    <ion-nav-view></ion-nav-view>
  </body>

</html>

app.js

angular.module('starter', ['ionic', 'starter.controllers'])

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if (window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    }
    if (window.StatusBar) {
      // org.apache.cordova.statusbar required
      StatusBar.styleDefault();
    }
  });
})

.config(function($stateProvider, $urlRouterProvider) {
  $stateProvider

  .state('app', {
    url: "/app",
    abstract: true,
    templateUrl: "menu.html",
    controller: 'AppCtrl'
  })

  .state('app.questionsAnswers', {
    url: "/questionsAnswers",
//    abstract: true,
    views: {
      'menuContent': {
        templateUrl: "questionsAnswers.html"//,
//        controller: 'questionsAnswersCtrl'
      }
    }
  })

  .state('app.questionsAnswers.recent', {
    url: "/recent",
    views: {
      'recent-questions': {
        templateUrl: "recentQuestionsAnswers.html",
        controller: 'recentQuestionsAnswersCtrl'
      }
    }
  })

  .state('app.questionsAnswers.mostVoted', {
    url: "/mostVoted",
    views: {
      'most-voted-questions': {
        templateUrl: "mostVotedQuestionsAnswers.html",
        controller: 'mostVotedQuestionsAnswersCtrl'
      }
    }
  })

  .state('app.questionsAnswers.random', {
    url: "/random",
    views: {
      'random-questions': {
        templateUrl: "randomQuestionsAnswers.html",
        controller: 'randomQuestionsAnswersCtrl'
      }
    }
  })


    .state('app.foo', {
      url: "/foo",
      views: {
        'menuContent': {
          templateUrl: "foo.html",
          controller: 'fooCtrl'
        }
      }
    });
  // if none of the above states are matched, use this as the fallback
  $urlRouterProvider.otherwise('/app/foo');
});

菜单.html

<ion-side-menus enable-menu-with-back-views="false">
  <ion-side-menu-content>
    <ion-nav-bar class="bar-stable">
      <ion-nav-back-button>
      </ion-nav-back-button>

      <ion-nav-buttons side="left">
        <button class="button button-icon button-clear ion-navicon" menu-toggle="left">
        </button>
      </ion-nav-buttons>
    </ion-nav-bar>
    <ion-nav-view name="menuContent"></ion-nav-view>
  </ion-side-menu-content>

  <ion-side-menu side="left">
    <ion-header-bar class="bar-stable">
      <h1 class="title">Menu</h1>
    </ion-header-bar>
    <ion-content>
      <ion-list>
                <ion-item nav-clear menu-close href="#/app/questionsAnswers">
          Questions & Answers
        </ion-item>
        <ion-item nav-clear menu-close href="#/app/foo">
          Foo
        </ion-item>        
      </ion-list>
    </ion-content>
  </ion-side-menu>
</ion-side-menus>

questionsAnswers.html

<ion-view view-title="Questions & Answers">
  <ion-content>
    <h1>Questions & Answers</h1>
        <ion-tabs class="tabs-positive tabs-icon-only">

          <ion-tab title="Recent" ui-sref="app.questionsAnswers.recent" icon-on="ion-ios-clock" icon-off="ion-ios-clock-outline">
                <ion-nav-view name="recent-questions"></ion-nav-view>
          </ion-tab>

          <ion-tab title="Most voted" ui-sref="app.questionsAnswers.mostVoted" icon-on="ion-arrow-up-c" icon-off="ion-arrow-up-a">
                <ion-nav-view name="most-voted-questions"></ion-nav-view>
          </ion-tab>

          <ion-tab title="Random" ui-sref="app.questionsAnswers.random" icon-on="ion-help-circled" icon-off="ion-help">
                <ion-nav-view name="random-questions"></ion-nav-view>
          </ion-tab>

        </ion-tabs>
  </ion-content>
</ion-view>

剩下的HTML文件在我的SSCCE http://sscce.org/只是类型的简单视图:

<ion-view view-title="foo">
  <ion-content>
    <ion-list>
      foo content
    </ion-list>
  </ion-content>
</ion-view>

The controllers.js在示例中并不真正相关,因为所有控制器基本上什么都不做(当然在真实的应用程序中它们都有自己的功能)。

我在 SO 和其他网站上阅读了很多问题和答案,但似乎找不到我做错的事情。问题是:为什么我的选项卡中的嵌套视图会呈现但仍然不可见?


Your ion-view 问题和答案 (问题答案.html) 不能包含<ion-content>元素因为你已经设置了<ion-content>在每个子视图中。

EX:

<ion-view view-title="Most voted questions and answers">
  <ion-content>
    <h1>Most voted Questions</h1>
  </ion-content>
</ion-view>

So your 问题答案.html应该:

<ion-view view-title="Questions & Answers">
        <ion-tabs class="tabs-positive tabs-icon-only tabs-top">

          <ion-tab title="Recent" ui-sref="app.questionsAnswers.recent" icon-on="ion-ios-clock" icon-off="ion-ios-clock-outline">
                <ion-nav-view name="recent-questions">
                </ion-nav-view>
          </ion-tab>

          <ion-tab title="Most voted" ui-sref="app.questionsAnswers.mostVoted" icon-on="ion-arrow-up-c" icon-off="ion-arrow-up-a">
                <ion-nav-view name="most-voted-questions"></ion-nav-view>
          </ion-tab>

          <ion-tab title="Random" ui-sref="app.questionsAnswers.random" icon-on="ion-help-circled" icon-off="ion-help">
                <ion-nav-view name="random-questions"></ion-nav-view>
          </ion-tab>

        </ion-tabs>
</ion-view>

这是plunker http://plnkr.co/edit/nN7vktAwPc0FmM37byz5?p=preview.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

离子侧菜单和带有嵌套视图的选项卡:选项卡嵌套视图的内容未显示 的相关文章

  • 页面不会居中对齐

    我遇到了 CSS 问题 http www luukratief design nl dump parallax index html http www luukratief design nl dump parallax index htm
  • 如何为 ng-repeat orderBy 创建回调?

    寻找一种方法让 AngularJS 的 ng repeat orderBy 过滤器在完成渲染后执行回调 Markup div table thead tr th Name th th Age th tr thead tbody tr tr
  • 使用 JavaScript 从 URL 变量读取来加载不同的 CSS 样式表

    我试图在我的 WordPress 博客上使用两个不同的样式表 以便在通过 Web 访问页面时使用一个样式表 而在通过我们的 iOS 应用程序访问博客内容时使用另一个样式表 现在 我们将 app true 附加到来自 iOS 应用程序的 UR
  • 如何仅在第一次访问时弹出模态窗口

    我有一个模式窗口 当您访问某个页面时会弹出 访客必须选择我同意或我不同意 我需要一个漂亮的小 jquery 脚本 它会记住谁之前访问过该页面并同意 这样他们每次访问该页面时就不会弹出模式 有人可以推荐一个好的脚本来使用吗 这是代码 div
  • HTML5中如何隐藏video标签的全屏按钮

    我需要隐藏 HTML5 中视频标签的全屏按钮 有什么办法可以实现吗 Thanks 我认为你可以通过更改 css 来实现这一点 document fragments 这些是 DOM1 规范 所有浏览器都支持 但关于样式 我不确定 Simple
  • 等宽字体中的字体大小和字符宽度之间有什么依赖关系?

    等宽字体中的字体大小和字符宽度之间有什么依赖关系 在我的网络应用程序中 我使用 courier new 字体 我想知道 字符串的实际长度 以像素为单位 是多少 如果我知道CSS font size属性 它如何帮助我知道字符串的实际长度 谢谢
  • AngularJS 指令 - 设置多个指令元素的顺序(不是指令的优先级,而是元素的优先级)

    考虑带有指令 foo 的标记 div div div div div div 使 foo 按指定顺序而不是从上到下 3 1 2 运行的好方法是什么 我唯一能想到做的就是跟踪已运行的内容并在不按顺序的项目上返回 false 然后让 Angul
  • 列表中允许 div 吗? [复制]

    这个问题在这里已经有答案了 我知道DIV inside LI是不允许的 但我最近在许多 大 网站上看到了它 例如粉碎杂志 网页设计师墙 etc 我尝试验证网站 但它们有错误 但没有任何信息DIV in LI 那么我可以在里面使用它吗LI 我
  • 为什么连字符 (-) 分隔的类名在 CSS 中广泛使用 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在浏览了一些网站和其他一些广泛使用的插件和框架中包含的一些 CSS 文件时 发现它们广泛使用连字符分隔的单词作为类名 实际上使用这样的类名有什么
  • 带滚动条的 HTML 画布

    我正在宽度不等的画布上绘制图表 每个画布可以有自己的滚动条吗 我尝试将所有画布放在一个 div 中并指定最大宽度 但它不起作用 是否有可能所有画布在页面上的可见宽度均为 500 像素 并且每个画布都有其滚动条来查看画布的整个宽度 谢谢 指定
  • 如何使用 AngularJS、Devise 和 UI Router 全局实现身份验证?

    我对 Angular 很陌生 所以这可能是一个新手问题 我正在尝试实现一个简单的任务管理器 只是一个练习 以 Rails 作为后端 以 Angular 作为前端 到目前为止 我遵循了教程 一切正常 现在我想在全球范围内实施身份验证 这意味着
  • Angular - Safari 无法正确显示 DOM

    我是 Angular 的新手 使用 Angular 4 我尝试通过在关联的组件类文件中设置属性来更新特定元素 但是 除非我尝试强制重新绘制网页 通过调整窗口大小等 否则页面不会更新 我打开检查器 看到 DOM 已更改 但显示与元素检查器中的
  • 使用 jQuery 值更新 Angular 模型

    您好 我有一个附加在我的模型上的输入字段 当用户手动输入该字段时 会在更改时调用一个函数 这工作正常 并且模型按预期在控制台日志中反映
  • css:将div制作成圆角并在其3/4处添加边框

    我有这样的代码 div class circle div and css circle border left 1px solid red border bottom 1px solid red border radius 200px wi
  • 从 url 角度加载模板并在 div 内编译

    由于我是 Angular JS 的新手 我想知道如何加载外部模板并将其与一些数据一起编译到目标中div 例如我有这个模板
  • 在 Apache 服务器上将特定的 .htm 页面处理为 .php [重复]

    这个问题在这里已经有答案了 我正在为 Apache 服务器编程 并且只需要将一个特定的 html 页面 例如 first htm 作为 PHP 脚本进行处理 可以设置吗 SetHandler http httpd apache org do
  • 我将 X Y Z 坐标转换为屏幕 X Y 坐标有什么问题吗?

    我正在制作 3D 空间中弹跳的球体的 HTML5 Canvas 演示 这非常简单 每个球都有 X Y 和 Z 坐标 然后 这些坐标将转换为我在此处阅读的屏幕 X 和 Y 坐标 http answers google com answers
  • 在 Selenium WebDriver 上如何从 Span 标签获取文本

    在 Selenium Webdriver 上 如何从 span 标记检索文本并打印 我需要提取文本UPS Overnight Free HTML代码如下 div id customSelect 3 class select wrapper
  • 右列固定的 Div 表

    我最近接手了一个非营利网站作为一个项目 我正在使用一个现有的网站 所以我必须使用很多已经编程的东西 所以我所要做的就是创建设计 I made a diagram of basically what I can t figure out ho
  • 快速响应的交互式图表/图形:SVG、Canvas 还是其他?

    我正在尝试选择正确的技术来更新一个项目 该项目基本上在可缩放 可平移的图表中渲染数千个点 当前使用 Protovis 的实现性能不佳 在这里查看 http www planethunters org classify http www pl

随机推荐