2017-05-09 62 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

我想重新使用该功能 –

相关问题