Is it possible to use templateUrl instead of the embedded template in ui-router? If yes, which approach is better?
Asked
Active
Viewed 251 times
1 Answers
1
Yes, you can use templateUrl in ui-router.
.state('stateName', {
templateUrl: 'path/to/template',
controller: 'someController'
});
But which is the best approach is a trick question. Its all about how you are going to use the state. For example,
- if your using angular 1.5 components, and need to call it as page, then it better to use
template
;
.state('stateName', {
template: '<component-name></component-name>'
});
This is one of the most common approch for component. If you using ui-router version above 1.5, then you can do following too,
.state('stateName', {
component: 'component-name'
})
- If you are using seperate template and controller it is better to use templateUrl,
.state('stateName', {
templateUrl: 'path/to/template',
controller: 'someController'
})
But directly writing the html like below is considered as bad practice
.state('stateName', {
templateUrl: '<div><p>never do this</p></div>',
controller: 'someController'
});

Amir Suhail
- 1,284
- 3
- 12
- 31
-
You think which approach is better for reusability? I want to apply it for developing component based software product line. Can I create an Angular Component that uses templateUrl instead of template? – EddyG Mar 14 '17 at 10:13
-
1If you want to create reusable components, then defenitily you should stick with angular component, in that I would use template as mentioned in example 1 in the answer – Amir Suhail Mar 14 '17 at 10:18
-
And you suggest using ui-router better than ng-route? – EddyG Mar 14 '17 at 10:22
-
1Thats explained better here http://stackoverflow.com/questions/21023763/what-is-the-difference-between-angular-route-and-angular-ui-router – Amir Suhail Mar 14 '17 at 10:28