2017-05-09 64 views
0

我有這樣我們可以從模板返回函數訪問已解析的參數嗎?

   .state('dropdown', { 
        url: '/dropdown', 
        views: { 
         "@":{ 
          template: getTemplate(params) 
         } 
        }, 
        resolve: { 
         params: function(){ 
          return { 
           stateHeader: 'Dropdown', 
           moduleName: 'dropdown', 
           files: [{"title": "dropdown.html", "path":"app/modules/dropdown/dropdown.html"}, {"title": "dropdown.ctrl.js", "path":"app/modules/dropdown/dropdown.ctrl.js"}, {"title": "dropdown.css", "path":"app/modules/dropdown/dropdown.css"}] 
          } 
         } 
        } 
       }) 

和模板返回功能的狀態是

function getTemplate(stateParams) { 

    // I want to access those resolved parameters here 

    var moduleName = stateParams.moduleName; 
    var templateUrl = moduleName + '/' + moduleName; 
    return '<div><tabs-directive exe-template=\'app/modules/' + templateUrl + '.html\' files=\'' + stateParams.files + '\' header=\'Basic Usage\'></tabs-directive></div>'; 
} 

如何傳遞,並在是getTemplate功能訪問這些解決params對象使用相同的函數返回模板?請幫幫我。

注意: getTemplate函數也必須重用於其他狀態。

回答

0
.state('dropdown', { 
    url: '/dropdown', 
    params: { 
    stateHeader: 'Dropdown', 
    moduleName: 'dropdown', 
    files: [ 
     {"title": "dropdown.html", "path":"app/modules/dropdown/dropdown.html"}, 
     {"title": "dropdown.ctrl.js", "path":"app/modules/dropdown/dropdown.ctrl.js"}, 
     {"title": "dropdown.css", "path":"app/modules/dropdown/dropdown.css"} 
    ] 
    }, 
    views: { 
    "@": { 
     template: getTemplate($stateParams) { 
     var moduleName = $stateParams.moduleName; 
     var templateUrl = moduleName + '/' + moduleName; 
     console.log('<div><tabs-directive exe-template=\'app/modules/' + templateUrl + '.html\' files=\'' + $stateParams.files + '\' header=\'Basic Usage\'></tabs-directive></div>'); 
     } 
    } 
    }, 
}) 

代碼中沒有「解析」,它們看起來都是參數,所以根本不需要解析。當你引用params時,即使它們處於相同的「狀態」,你仍然需要將它看作$ stateParams(而不是stateParams),所以getTemplate()應該使用它作爲參數而不是params。

+0

我想重新使用該功能 –

相關問題