AngularJS - UI路由器:使用解析为自动加载纪录编辑

问题描述:

我努力学习的UI路由器的决心......AngularJS - UI路由器:使用解析为自动加载纪录编辑

我在路由定义和editApp.js,我的主控制器app.js为所有编辑屏幕。

我想“自动加载”从所有的EDIT子视图的API适当的记录,所以我有我的/编辑/下决心:ID的路由。

这是editApp.js

(function(){ 
     var EditAppController = function($scope, $state, $http, $location, $window, _){ 

     }; // end EditAppController 

     EditAppController.$inject = ['$scope', '$state', '$http', '$location', '$window', '_']; 

     angular.module('ARM').controller('EditAppController', EditAppController); 
    }()); 

这是app.js:

var ARM = angular.module('ARM', ['ui.router', 'ui.bootstrap']); 

ARM.constant('_', window._) 
    .run(function ($rootScope) { 
     $rootScope._ = window._; 
    }); 

ARM.config(function($stateProvider, $urlRouterProvider){ 
    $stateProvider 
     .state('home', { 
      url: '/', 
      templateUrl: '/ang/views/landing.html', 
      controller: 'MainController' 
     }) 

     .state('prefs', { 
      url: '/prefs', 
      templateUrl: '/ang/views/prefs.html' 
     }) 

     //EDITS HERE 
     .state('edit', { 
      url: '/edit/:id', 
      templateUrl: '/ang/views/edit/editapp.html', 
      controller: 'EditAppController', 
      resolve:{ 
       loan: function($http, $stateParams){ 
        return $http.get('/api/loans/'+$stateParams.id) 
       } 
      } 
     }) 

     .state('edit.farmer', { 
      url: '/farmer', 
      templateUrl: '/ang/views/edit/farmer.html' 
     }) 

     .state('edit.applicant', { 
      url: '/applicant', 
      templateUrl: '/ang/views/edit/applicant.html' 
     }) 

     .state('edit.partner', { 
      url: '/partner', 
      templateUrl: '/ang/views/edit/partner.html' 
     }) 

     .state('edit.quests', { 
      url: '/quests', 
      templateUrl: '/ang/views/edit/quests.html' 
     }) 

     .state('edit.states', { 
      url: '/states', 
      templateUrl: '/ang/views/edit/states.html' 
     }) 

     .state('edit.farms', { 
      url: '/farms', 
      templateUrl: '/ang/views/edit/farms.html' 
     }) 

     .state('edit.crops', { 
      url: '/crops', 
      templateUrl: '/ang/views/edit/crops.html' 
     }) 

     .state('edit.insurance', { 
      url: '/insurance', 
      templateUrl: '/ang/views/edit/insurance.html' 
     }) 

     // NEW HERE 
     .state('new', { 
      abstract: true, 
      url: '/new', 
      templateUrl: '/ang/views/new/newApp.html', 
      controller: 'NewAppController' 
     }) 

     .state('new.farmer', { 
      url: '/farmer', 
      templateUrl: '/ang/views/new/farmer.html' 
     }) 

     .state('new.applicant', { 
      url: '/applicant', 
      templateUrl: '/ang/views/new/applicant.html' 
     }) 

     .state('new.partner', { 
      url: '/partner', 
      templateUrl: '/ang/views/new/partner.html' 
     }) 

     .state('new.quest', { 
      url: '/quest', 
      templateUrl: '/ang/views/new/quest.html' 
     }) 

     .state('new.states', { 
      url: '/states', 
      templateUrl: '/ang/views/new/states.html' 
     }) 

     .state('new.counties', { 
      url: '/counties', 
      templateUrl: '/ang/views/new/counties.html' 
     }) 

     .state('new.farms', { 
      url: '/farms', 
      templateUrl: '/ang/views/new/farms.html' 
     }) 

     .state('new.crops', { 
      url: '/crops', 
      templateUrl: '/ang/views/new/crops.html' 
     }) 

     .state('new.insurance', { 
      url: '/insurance', 
      templateUrl: '/ang/views/new/insurance.html' 
     }); 

    $urlRouterProvider.otherwise('/'); 
}); 

我读过的文档,我只是不知道如何获得$范围可变进控制器。有人能帮我把这个价值(贷款)拿到我的控制器里吗?

只需添加loan,因为它是另一种可注射的依赖

(function(){ 
    var EditAppController = function($scope, $state, $http, $location, $window, _, loan){ 
    }; // end EditAppController 

    EditAppController.$inject = ['$scope', '$state', '$http', '$location', '$window', '_', 'loan']; 

    angular.module('ARM').controller('EditAppController', EditAppController); 
}()); 
+0

这就是我认为的文件显示,这似乎很容易,但是当我这样做,整个“应用程序”休息... HTTP:// cl.ly/XL2e – jgravois 2014-09-03 12:46:50

+0

你能提供一个堆栈跟踪或错误消息吗? – MiTa 2014-09-03 12:50:25

+0

错误:[$注射器:unpr]未知提供商:loanProvider jgravois 2014-09-03 13:17:16