ja próbuje zrobić moja aplikacja zbierać dane przed zmianą trasy, jak pokazano na wielu filmie Johna Lindquist: http://www.youtube.com/watch?v=P6KITGRQujQ&list=UUKW92i7iQFuNILqQOUOCrFw&index=4&feature=plcpangularjs odroczyć błąd: Argument „fn” nie jest funkcją, dostał Object
I to wszystko podłączyć, ale kiedy nadszedł czas na odroczony przedmiot rozwiązać, otrzymuję błąd:
Error: Argument 'fn' is not a function, got Object
at assertArg (http://localhost:9000/components/angular/angular.js:1019:11)
at assertArgFn (http://localhost:9000/components/angular/angular.js:1029:3)
at annotate (http://localhost:9000/components/angular/angular.js:2350:5)
at invoke (http://localhost:9000/components/angular/angular.js:2833:21)
at Object.instantiate (http://localhost:9000/components/angular/angular.js:2874:23)
at http://localhost:9000/components/angular/angular.js:4759:24
at <error: illegal access>
at Object.Scope.$broadcast (http://localhost:9000/components/angular/angular.js:8261:28)
at http://localhost:9000/components/angular/angular.js:7417:26
at wrappedCallback (http://localhost:9000/components/angular/angular.js:6797:59) angular.js:5704
Mój kod wygląda następująco:
Route -
angular.module('saApp')
.config(function ($routeProvider, $locationProvider) {
$routeProvider
.when('/dashboard', {
templateUrl: 'views/dashboard/dashboard.html',
controller: Dashboard,
resolve: Dashboard.resolve
}
});
kontroler -
var Dashboard = angular.module('saApp').controller(
function ($scope, dataset) {
$scope.data = dataset;
});
Dashboard.resolve = {
dataset: function ($q, DBFactory) {
console.log("dataset enter")
var deferred = $q.defer();
DBFactory.get({noun: "dashboard"},
function (data) {
console.log("resolving");
deferred.resolve(data);
});
console.log("promise");
return deferred.promise;
}
}
Na metę, to wykonuje determinację, zasób DBFactory idzie, wraca i wszystko działa aż do rzeczywistego „deferred.resolve (dane);” gdzie wtedy otrzymuję błąd wklejony powyżej. Jeśli skomentuję ten jeden wiersz, oczywiście nie otrzymuję strony, ale też nie otrzymuję błędu.
Zawartość danych, wracająca z DBFactory to obiekt JSON, który jest oczekiwany i wyświetlany we wszystkich przykładach, w których widziałem online i wideo.
używając:
AngularJS 1.0.6
myśli? Dzięki za twoją pomoc.
UPDATE:
Wydaje drogę używałem moich tras i definiowanie kontrolera z nazw:
var Dashboard = angular.module('saApp').controller()
było winić za to. Kiedy po prostu używam standardowej deklaracji funkcji:
function DashboardCtrl($scope, dataset) {
$scope.data = dataset;
}
zadowala błąd "szukam funkcji, otrzymałem obiekt". Dziwną rzeczą było to, że zmieniłem ją na używanie go jako obiektu "var DashboardCtrl = angular.module ('saApp'). Controller()" lub nawet tego, co miałem wcześniej przed generatorem yomanów i określonymi w dokumentach angularjs od:
angular.module('saApp')
.controller('DashboardCtrl', function ($scope, dataset) {});
z trasy:
.when('/dashboard', {
templateUrl: 'views/dashboard/dashboard.html',
controller: 'DashboardCtrl'
})
nie będzie działać.
próbowałeś używając kątowego 1.0.5 –
właśnie go wypuściłeś, ten sam błąd –
Utknąłem na tym też! Chcę odwołać się do metody kontrolera we właściwości route.resolve w drugim argumencie $ routeProvider.when(). Jak mogę zrobić, gdy używam stylu modułu definicji kontrolera? (także przy użyciu języka) Utknąłem! – deck