AngularJS-ui路由器:使用解析自动加载记录进行编辑
我正在努力学习ui路由器的解决方案 我有定义路由的app.js和所有编辑屏幕的主控制器editApp.js 我正在尝试从API“自动加载”所有编辑子视图的正确记录,以便对/EDIT/:id路由有一个解析 这是editApp.jsAngularJS-ui路由器:使用解析自动加载记录进行编辑,angularjs,Angularjs,我正在努力学习ui路由器的解决方案 我有定义路由的app.js和所有编辑屏幕的主控制器editApp.js 我正在尝试从API“自动加载”所有编辑子视图的正确记录,以便对/EDIT/:id路由有一个解析 这是editApp.js (function(){ var EditAppController = function($scope, $state, $http, $location, $window, _){ }; // end EditAppControll
(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('/');
});
我已经阅读了文档,只是不明白如何将$scope变量放入控制器。有人能帮我把那个值(贷款)输入我的控制器吗。只要添加
贷款就行了,因为它是另一个可注入的依赖项
(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);
}());
这就是我认为文档中指出的,看起来很简单,但当我这么做时,整个“应用程序”都崩溃了。。。错误:[$injector:unpr]未知提供程序:loanProvider我使用resolve创建了JSFIDLE,它可以工作:。也许你在什么地方打错了。