2016-08-23 41 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

對不起,它發生是因爲編譯器將該函數作爲該對象的鍵名稱而不是調用該函數。我編輯了答案,請嘗試。 –

相關問題