Ответ 1
Нет никакой разницы. Вы можете проверить источники директивы ng-switch https://github.com/angular/angular.js/blob/master/src/ng/directive/ngSwitch.js
var watchExpr = attr.ngSwitch || attr.on
Я старательно читал ссылку API AngularJS для директивы ngSwitch, когда я пришел к этой части
поместите выражение в атрибут on = "..." (или ng-switch = "..." атрибут)
Так что, конечно, мне было интересно, почему есть два способа размещения выражения, поскольку оба они работают одинаково.
<div ng-switch="expression">
<div ng-switch on="expression">
Я предполагаю, что есть причина, но я пока ничего не нахожу.
Plunker для тестирования: http://plnkr.co/edit/VAq1t4744bnNC6RgZtEn?p=preview
Нет никакой разницы. Вы можете проверить источники директивы ng-switch https://github.com/angular/angular.js/blob/master/src/ng/directive/ngSwitch.js
var watchExpr = attr.ngSwitch || attr.on