Mam wiele tras, które wywołują ten sam kontroler i chciałbym przekazać do niego różne zmienne.
// Example
$routeProvider.
when('/a', {
templateUrl: 'test.html',
controller: 'MyController' // should get passed 'exampleA'
}).
when('/b', {
templateUrl: 'test.html',
controller: 'MyController' // should get passed 'exampleB'
});
wiem, że mogę użyć "resolve" obiektu:
$routeProvider.
when('/a', {
templateUrl: 'test.html',
controller: 'MyController',
resolve: {test: function() { return true; }}
});
Aby przekazać wartość jako zależność:
app.controller('MyController', ['$scope', 'test', function ($scope, test) {
console.log(test); // true
}
Mój problem z tego podejścia jest to, że moim app ulega awarii, jeśli brakuje obiektu rozstrzygnięcia na innych trasach i chciałbym przekazać opcjonalne parametry.
Czy istnieje sposób przekazywania określonych parametrów do sterownika (od dostawcy trasy)?
Dziękuję
Dziękuję Ci. Zrobię to, jeśli nie znajdę rozwiązania, aby przekazać parametry bez pokazywania ich użytkownikowi. –
Sądzę, że w pierwszej kolejności wyeliminowałoby to cel posiadania wielu adresów URL. Innym rozwiązaniem może być użycie $ location.path w twoim kontrolerze. – wvdz