検索

ホームページ  >  に質問  >  本文

angular.js - angular路由页面里怎么实现再写一个ng-controller(请进来看,标题说不明白)

首先,创建一个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>

然后创建一个add.html路由页面

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

然后是mainApp.js,用于控制路由分配和模板的js

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

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

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

} ]);

然后创建InsuranceAddController.js用于处理add.html页面的一些js或其他

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

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

我要实现的是在这个页面写一个分页,我的理解的在这个路由页面再写一个controller,

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

然后再InsuranceAddController.js里添加用于控制PaginationDemoCtrl的代码

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) {
              ...
});

可是这样就报错了,请问这个怎么实现呢?(新手愚问,多多包涵)

以下是分页DEMO(我想把分页demo丢进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>
伊谢尔伦伊谢尔伦2744日前714

全員に返信(2)返信します

  • 黄舟

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

    この方法で controller を使用しても問題がないことは正確に言えます。エラーが発生した場合は、どこかで間違いがあったことを意味します。たとえば、PaginationDemoCtrl 定義?controller是没有问题,出错说明你什么地方写错了,比如:在哪里定义的PaginationDemoCtrl?

    还有,写个分页,干嘛要里面再套一个controller

    また、ページングを記述するときに、なぜ別の controller をその中に置く必要があるのですか?🎜

    返事
    0
  • PHP中文网

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

    リーリー

    ここでの mainApp はどこから来たものですか?ブラウザは正しく認識できるでしょうか?

    返事
    0
  • キャンセル返事