recherche

Maison  >  Questions et réponses  >  le corps du texte

angulaire.js - Comment écrire un autre contrôleur ng dans la page de routage angulaire (veuillez venir jeter un oeil, le titre n'est pas clair)

Tout d'abord, créez une page index.html

<!doctype html>
<html ng-app="mainApp">
<head>
    <meta charset="UTF-8"/>
    <title>Angular JS + Spring MVC test</title>
    <link rel="stylesheet" href="resources/bootstrap/css/bootstrap.min.css" />
    <script src="resources/js/lib/angular/angular.js"></script>
    <script src="resources/js/lib/angular/angular-resource.js"></script>
    <script src="resources/js/lib/angular/angular-route.js"></script>
    <script src="resources/js/mainApp.js"></script>
    <script src="resources/js/InsuranceAddController.js"></script>
</head>

<body>
<p id="wrapper">
    <p ng-view></p>
</p>
</body>
</html>

Créez ensuite une page de routage add.html

<p class="row">
    ....
</p>

Puis mainApp.js, le js utilisé pour contrôler la distribution des routes et les modèles

var mainApp = angular.module('mainApp', [ 'ngRoute', 'ngResource' ]);

mainApp.config([ '$routeProvider', function($routeProvider) {

    $routeProvider.when('/add.do', {
        templateUrl : 'insurance_add.html',
        controller : 'InsuranceAddController'
    });

} ]);

Créez ensuite InsuranceAddController.js pour gérer certains js ou autres de la page add.html

mainApp.controller('InsuranceAddController', ['$scope', '$location', function($scope, $location) {

    $scope.gotoList = function() {
            ...
    };
 
}]);

Ce que je veux réaliser, c'est écrire une pagination sur cette page, et ma compréhension est d'écrire un contrôleur sur cette page de routage,

<p class="row">
    <p ng-controller="PaginationDemoCtrl">
        ...
    </p>
</p>

Ajoutez ensuite le code de contrôle de PaginationDemoCtrl dans InsuranceAddController.js

mainApp.controller('InsuranceAddController', ['$scope', '$location', function($scope, $location) {

    $scope.gotoList = function() {
            ...
    };
 
}]);
angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('PaginationDemoCtrl', function ($scope, $log) {
              ...
});

Cependant, une erreur est signalée. Comment y parvenir ? (Question stupide d'un débutant, s'il vous plaît, soyez indulgents avec moi)

Ce qui suit est la DÉMO de pagination (je souhaite lancer la démo de pagination dans la page de routage add.html)

<p ng-controller="PaginationDemoCtrl">
    <uib-pagination total-items="bigTotalItems" ng-model="bigCurrentPage" max-size="maxSize" class="pagination-sm" boundary-link-numbers="true">
    </uib-pagination>
</p>
<script>
    angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);    
    angular.module('ui.bootstrap.demo').controller('PaginationDemoCtrl', function ($scope, $log) {
        $scope.totalItems = 64;
        $scope.currentPage = 4;
        $scope.setPage = function (pageNo) {
            $scope.currentPage = pageNo;
        };
        $scope.pageChanged = function() {
            $log.log('Page changed to: ' + $scope.currentPage);
        };
            $scope.maxSize = 5;
            $scope.bigTotalItems = 175;
            $scope.bigCurrentPage = 1;
    });
        </script>
伊谢尔伦伊谢尔伦2819 Il y a quelques jours738

répondre à tous(2)je répondrai

  • 黄舟

    黄舟2017-05-15 17:04:41

    Je peux vous dire avec précision qu'il n'y a aucun problème à utiliser controller de cette manière. Une erreur signifie que vous avez fait une erreur quelque part, par exemple : Où est défini PaginationDemoCtrl ?

    Écrivez également une pagination, pourquoi avez-vous besoin d'en mettre un autre controller à l'intérieur ?

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-15 17:04:41

    mainApp.controller('InsuranceAddController', ['$scope', '$location', function($scope, $location) {
    
        $scope.gotoList = function() {
                ...
        };
     
    }]);

    D'où vient l'application principale ici ? Le navigateur peut-il le reconnaître correctement ?

    répondre
    0
  • Annulerrépondre