2016-08-23 21 views
1

我想知道是否有可能在我的routes.js中做这样的事情。这不起作用,但我想知道这是否可能。是否可以在路线中设置两个视图?

state('tabs.jobDetails', { 
    url: '/jobDetail', 
    cache: false, 
    views: { 
    function($ionicHistory) { 
     if($ionicHistory.backTitle() === "Listings") { 
     'home-tab' 
     } else { 
     'search-tab' 
     } 
    } { 
     templateUrl: 'templates/jobDetails/jobDetails.html', 
     controller: 'jobsCtrl' 
    } 
    } 
}); 
+2

MB您应该原封不动地返回该值('家用tab','搜索tab')?即'返回'主标签';','返回'搜索标签';'现在你的函数什么都没有返回......你试过了吗? – Razzka

+0

@Razzka我试过了,我得到一个意外的字符串错误 – noor

回答

0

视图对象应该像下面的格式;

views: { 
    "main": { 
     template: "<h1>HELLO!</h1>" 
    } 
} 

所以你需要改变你的代码来使这个对象。我会建议将函数放在.state和$ stateprovider之外,并在视图中调用它。 定义功能外,如:

function setStateParams() { 
    if($ionicHistory.backTitle() === "Listings") { 
     return { 
      'home-tab': { 
       templateUrl: 'templates/jobDetails/jobDetails.html', 
       controller: 'jobsCtrl' 
      } 
     }; 
    } else { 
     return { 
      'search-tab': { 
       templateUrl: 'templates/jobDetails/jobDetails.html', 
       controller: 'jobsCtrl' 
      } 
     }; 
    } 
} 

,并调用它的视图对象,如:

views: setStateParams() 
+0

这会在route.js中抛出一个错误。该错误是在 templateUrl: '模板/ jobDetails/jobDetails.html', 控制器: 'jobsCtrl' 凡不acceot的 ':' 字符。有关如何解决这个问题的任何想法? – noor

+0

对不起,它发生是因为编译器将该函数作为该对象的键名称而不是调用该函数。我编辑了答案,请尝试。 –

相关问题