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);
}());
这就是我认为的文件显示,这似乎很容易,但是当我这样做,整个“应用程序”休息... HTTP:// cl.ly/XL2e – jgravois 2014-09-03 12:46:50
你能提供一个堆栈跟踪或错误消息吗? – MiTa 2014-09-03 12:50:25
错误:[$注射器:unpr]未知提供商:loanProvider jgravois 2014-09-03 13:17:16