2015-11-24 107 views
0

我想從$ http調用加載templateurl。

$stateProvider 
.state('home', { 
     url: '/', 
     templateUrl: will be served by $http call from server 
    }); 

請建議我將如何實現這一點。

+0

建議你閱讀的模板UI路由器文檔https://github.com/angular- ui/ui-router/wiki#模板:) –

回答

0

角已經做了它。如果你想打電話給你的後端控制器請求JSP頁面templateurl最優雅的方式只需要調用$ HTTP URL這樣

.state('inbox', { 
     url: '/inbox', 
     templateUrl:'jspController/inboxRecord', 
     controller : 'inboxController' 
    }) 

該網址與迴應在我的情況下,jsp頁面將顯示inboxrecord.jsp。

0

爲templateUrl也可以是一個功能,你可以很容易地做到:

$stateProvider.state('home', { 
    templateUrl: function ($stateParams){ 
    $http....success({ 
     return <whatever> + '.html'; 
    }) 
    } 
}) 
1

我會建議使用templateProvider。這可能會消耗任何數量的IoC參數(包括當前的$ stateParams)。與$ templateRequest相結合,我們也可以很容易地從服務器獲取模板,並保持它的緩存:

.state('myState', 
{ 
    ... 
    // instead of templateUrl 
    templateProvider: ['$templateRequest', '$stateParams', 
    function($templateRequest,$stateParams){ 
     var pathToTemplate = '....html'; 
     // get the proper path from any IoC injected here 

     return $templateRequest(pathToTemplate); 

    }], 

檢查這些:

0

您將需要一個控制器來從結果中填充模板,並從模板綁定範圍值。

$stateProvider 
.state('home', { 
    url: '/', 
    templateUrl: 'index.html', 
    resolve { 
     results: function($http){ 
     return $http({method: 'GET', url: '/serverspi'}) 
      .then (function (data) { 
       return process(data); 
      }); 
    }, 
    } 
}); 
0

我用templateProvider(https://github.com/angular-ui/ui-router/wiki)和檢索包含我的模板JSON對象做這樣的事情:

templateProvider: function($http) { 
     return $http.get("http://example.com/returnJSONobject") 
       .then(function(res) { 
        return res.htmlTemplate; 
       }); 
},