angularjs – 在Ionic Framework上创建离子选项卡外的视图

前端之家收集整理的这篇文章主要介绍了angularjs – 在Ionic Framework上创建离子选项卡外的视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是Ionic的新手,但是自从我想尝试它以来已经很久了.我只是在玩耍,所以也许我没有得到完整的概念.

我正在尝试做一个简单的应用程序,底部有三个选项卡,并且所有三个选项卡都有一个设置图标.当您单击该图标时,应该隐藏选项卡并显示设置屏幕.

由于我不希望用户丢失任何内容,因此所有视图都从全局视图继承:

  1. angular.module('app',['ionic','debug']).config(function($stateProvider,$urlRouterProvider) {
  2.  
  3. $stateProvider
  4. .state('app',{
  5. url: "/app",abstract: true,controller: 'AppController',templateUrl: "ui/modules/tabs/view.html"
  6. })
  7. .state('app.compose-text',{
  8. url: '/text',views: {
  9. 'compose-text': {
  10. templateUrl: 'ui/modules/text-composer/view.html'
  11. }
  12. }
  13. })
  14. .state('app.compose-draw',{
  15. url: '/draw',views: {
  16. 'compose-draw': {
  17. templateUrl: 'ui/modules/draw-composer/view.html'
  18. }
  19. }
  20. })
  21. .state('app.compose-photo',{
  22. url: '/photo',views: {
  23. 'compose-photo': {
  24. templateUrl: 'ui/modules/photo-composer/view.html'
  25. }
  26. }
  27. })
  28. .state('app.settings',{
  29. url: '/settings',views: {
  30. 'settings': {
  31. controller: 'ui/modules/settings/ctrl.js',templateUrl: 'ui/modules/settings/view.html'
  32. }
  33. }
  34. });
  35.  
  36. // if none of the above states are matched,use this as the fallback
  37. $urlRouterProvider.otherwise('/app/text');
  38. });
  39.  
  40. angular.module('app').run(function($rootScope) {
  41. });

然后,tabs / view看起来像这样:

  1. <ion-nav-view name="settings"></ion-nav-view>
  2.  
  3. <ion-tabs class="tabs-assertive tabs-icon-only">
  4. <ion-tab title="Text" icon="icon ion-ios7-compose-outline" href="#/app/text">
  5. <ion-nav-view name="compose-text"></ion-nav-view>
  6. </ion-tab>
  7.  
  8. <ion-tab title="Draw" icon="icon ion-edit" href="#/app/draw">
  9. <ion-nav-view name="compose-draw"></ion-nav-view>
  10. </ion-tab>
  11.  
  12. <ion-tab title="Photo" icon="icon ion-ios7-camera-outline" href="#/app/photo">
  13. <ion-nav-view name="compose-photo"></ion-nav-view>
  14. </ion-tab>
  15. </ion-tabs>

其中一个观点:

  1. <ion-view title="Example" class="slide-left-right">
  2. <ion-nav-buttons side="left">
  3. <a class="button button-icon button-clear ion-ios7-gear-outline" href="#/app/settings"></a>
  4. </ion-nav-buttons>
  5. <ion-content padding="true">
  6. <h1>Text</h1>
  7. </ion-content>
  8. </ion-view>

我想知道的第一件事是:有没有办法在所有视图之间重用这些按钮?似乎无用于一遍又一遍地定义它们.

但这不是真实的东西.当我点击“设置”时,会有一些东西被注入到离子导航视图中,但是它包含很多东西(不在模板上),而且它不会隐藏其他视图和标签.

一些截图:

http://forum.ionicframework.com/uploads/default/_optimized/410/778/37f711d3f9_312x500.png

应该采用什么方法

这是我第一次在这里回答问题所以请耐心等待.

要导航到没有标签栏的视图:
从设置状态中删除“app”前缀,因此它不再是父抽象状态(app)的子项.

  1. .state('settings',templateUrl: 'ui/modules/settings/view.html'
  2. }
  3. }
  4. });

**如果在此之后添加任何状态,请务必删除分号,而分号表示结束.

这是一个助听解决方案.
您的问题的完整解决方案是从离子项目模板开始.幸运的是,他们有一个标签选项,这是一个全局标签栏.

命令行:
离子启动appName选项卡

这应该为您提供适当的起始模板,包含您需要的一切.它还有示例controllers.js,services.js和app.js文件,因此您可以从那里构建.它还可以帮助您正确构建项目,以防止意外数据注入您的标记.

来源1:http://ionicframework.com/getting-started/
来源2:http://ionicframework.com/docs/api/directive/ionNavView/

**奖励:源2中还有一个巧妙的技巧,它向您展示如何将所有模板保留在index.html文件中,以加快应用程序并简化您的工作流程.

祝好运.

猜你在找的Angularjs相关文章