Следуя основному ответу here, я попытался сделать то же самое, за исключением того, что мой контроллер изолирован. я получаю это:
Uncaught Error: [$injector:modulerr] Failed to instantiate module myApp due to:
ReferenceError: myController is not defined
я только получаю это когда параметр resolve:
присутствует. Как я могу обойти этот?
Маршрут конфигурации:
.state("my.jobs", {
url: "/my/:jobId",
templateUrl: "Views/my/index.htm",
controller: "myController",
resolve: myController.resolve // the root of all evil here
})
контроллер:
(function (ng, app) {
"use strict";
var ctrl = app.controller(
"myController",
['$scope', 'job',
function ($scope, job) {
$scope.job = job;
}]);
ctrl.resolve = {
job: function ($q, $stateParams, batchService) {
var deferred = $q.defer();
jobService.loadJob($stateParams.jobId, true)
.then(deferred.resolve, deferred.reject);
},
delay: function ($q, $defer) {
var delay = $q.defer();
$defer(delay.resolve, 1000);
return delay.promise;
}
};
})(angular, myApp);
Я не хочу, чтобы контроллер глобальная функция, я люблю его изоляции, как это.
примере, вы имеете в виду работает, потому что он использует глобальную переменную, и ваше дело вы делаете переменной изолированные , –
Да, я уже упоминал, как я могу заставить его работать с изолированными контроллерами. – AlexandruC
@ak работает без функции разрешения() ?, я бы предложил вам поставить свой код внутри углового обслуживания .. и затем использовать его .. –