2017-03-14 34 views

回答

1

是的,你可以在ui-router中使用templateUrl。

.state('stateName', { 
    templateUrl: 'path/to/template', 
    controller: 'someController' 
}); 

但是最好的方法是一個詭計的問題。它關於你將如何使用狀態的一切。例如,

  1. 如果您使用angular 1.5組件,並且需要將它稱爲頁面,那麼最好使用template;

.state('stateName', { template: '<component-name></component-name>' });

這是成分中最常見的計算策略之一。如果使用高於1.5 UI路由器版本,則可以執行以下也

.state('stateName', { 
    component: 'component-name' 
}) 
  • 如果使用單獨的模板和控制器最好是使用templateUrl,
  • .state('stateName', { templateUrl: 'path/to/template', controller: 'someController' })

    而是直接寫像下面的HTML被認爲是不好的做法

    .state('stateName', { 
        templateUrl: '<div><p>never do this</p></div>', 
        controller: 'someController' 
    }); 
    
    +0

    你認爲哪種方法更適合重用?我想將其應用於開發基於組件的軟件產品線。我可以創建一個使用templateUrl而不是模板的Angular組件嗎? – EddyG

    +1

    如果你想創建可重用的組件,然後defenitily你應該堅持角組件,因爲我會使用模板,如在答案 –

    +0

    中的示例1中提到的那麼你建議使用ui-router比ng-route更好嗎? – EddyG