После прочтения как api, так и руководства разработчика я до сих пор не понимаю функциональность, предоставляемую объявлением «контроллера» в заданном маршруте. Прямо сейчас у меня только что мои контроллеры объявлены как директивы ng-controller в моих представлениях. Является ли ngRoute просто альтернативным методом?Требуется ли объявление углового ngRoute 'Controller'?
Для того, чтобы мой вопрос явно в коде, смотрите ниже:
--Index.html
...
<body ng-app="MyApp">
<div ng-view>
</div>
</body>
--View.html
<div id="myView" ng-controller="MyController">
...
</div>
--Route.js
var app = angular.module('MyApp', [ require('angular-route') ]);
app.controller('MyController', ['$scope', function ($scope) {
console.log('this gets executed as I would expect');
}])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/', { templateUrl: '/Index.html' })
.when('/view', { templateUrl: '/View.html' });
// below line makes no difference as an alternative to above
//.when('/view', { templateUrl: '/View.html', controller: 'MyController' });
}]);
Я не знаю всех деталей, но по крайней мере ng-route также обеспечивает функциональность 'resolve'. – Rasalom
, когда вы укажете контроллер на маршрутах, вам не нужно указывать тег ng-controller в представлении. –
@ TechMa9iac - тогда почему? – aaaaaa