Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS-ui路由器:使用解析自动加载记录进行编辑_Angularjs - Fatal编程技术网

AngularJS-ui路由器:使用解析自动加载记录进行编辑

AngularJS-ui路由器:使用解析自动加载记录进行编辑,angularjs,Angularjs,我正在努力学习ui路由器的解决方案 我有定义路由的app.js和所有编辑屏幕的主控制器editApp.js 我正在尝试从API“自动加载”所有编辑子视图的正确记录,以便对/EDIT/:id路由有一个解析 这是editApp.js (function(){ var EditAppController = function($scope, $state, $http, $location, $window, _){ }; // end EditAppControll

我正在努力学习ui路由器的解决方案

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

我正在尝试从API“自动加载”所有编辑子视图的正确记录,以便对/EDIT/: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('/');
});

我已经阅读了文档,只是不明白如何将$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,它可以工作:。也许你在什么地方打错了。