The angular ui-router allows multiple nested views. The role of these interchangeable views seems to overlap the role of directives.
What are the pros/cons to using (multiple, nested) ui-view
s vs angular's directives?
UPDATE
States and routing are 2 different functions. States allow you to swap out partial.html templates and their controllers, and you can (optionally?) specify a corresponding URL/route.
In an email response from Tim Kindberg (a ui-router
dev):
ui-view is a directive, so if you use it you are using a directive
that has been worked on particular to work well with the rest of the
ui-router module. I can't imagine it being easy to roll your own
directive to replace this functionality.
And to this, it seems you could have 2 options:
Normal Directives:
app.directive('myDir1', {/* controller: ... */})
.directive('myDir2', {/* controller: ... */})
vs ui-view "Directives"
$stateProvider.state('route1', {
/* url: "/route1", // optional?? */
views: {
"myDir1": { templateUrl: "myDir1.html" /* , controller: ... */ },
"myDir2": { templateUrl: "myDir2.html" /* , controller: ... */ }
}
})
Bonus question:
Are normal angular directive features available to views? Such as:
- Transclude
- Replace
- Isolate scoping
- Compile / linking functions
If ui-views ARE directives, it seems clear their usage is different. Wouldn't it make sense to harmonize these models?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…