javascript - 引入了controller,为什么一直报错Uncaught Error: [$injector:nomod]
天蓬老师
天蓬老师 2017-04-10 15:54:07
[JavaScript讨论组]

初衷是要实现一个三级联动
正常注入了controller,仍然报错

将controller.js 改为angular.module('ngShowcaseApp',[])
页面不显示数据

<!DOCTYPE html>
<html 
ead>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewprot" content="width=device-width">
    <title>Document</title>
    <link rel="stylesheet" href="http://apps.bdimg.com/libs/todc-bootstrap/3.1.1-3.2.1/todc-bootstrap.min.css">
</head>
<body ng-app="ngShowcaseApp" ng-controller="ctrl.select.cascade">
   <p class="row">
          <p class="col-md-4">
              <select class="form-contrl" ng-model="vm.country" ng-options="country.label for country in vm.country">
                  <option value="">--请选择国家--</option>
              </select>
          </p>
          <p class="col-md-4" ng-if="vm.country.provinces">
              <select class="form-contrl" ng-model="vm.province" ng-options="province.label for value in vm.provinces">
                  <option value="">--请选择省份--</option>
              </select>
          </p>
          <p class="col-md-4" ng-if="vm.province.cities">
              <select class="form-contrl" ng-model="vm.city" ng-options="city.label for value in vm.cities">
                 <option value="">--请选择城市--</option>
              </select>
          </p>
   </p>
   <p>您选择的是:{{country.label}} -- {{province.label}} -- {{city.label}}</p>

   <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script src="http://apps.bdimg.com/libs/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <script src="http://apps.bdimg.com/libs/angular.js/1.4.0-beta.4/angular.min.js"></script>    
    <script src="data.controller.js"></script>
    <script src="data.js"></script>
</body>
</html>
'use strict';

angular.module('ngShowcaseApp',[])
.controller('ctrl.select.cascade',function($scope, CityData) {
    var vm = $scope.vm = {};
    vm.countries = CityData;
    //更换国家时清空省
    $scope.$watch('vm.country',function(country) {
        vm.province = null;
    });
    //更换省的时候清空市
    $scope.$watch('vm.province', function(province) {
        vm.city = null;
    });
});
'use strict';

angular.module('ngShowcaseApp').constant('CityData', [
  {
    label: '中国',
    flag: 'cn.png',
    provinces: [
      {
        label: '北京',
        cities: [
          {
            label: '朝阳区'
          },
          {
            label: '宣武区'
          },
          {
            label: '海淀区'
          }
        ]
      },
      {
        label: '河北',
        cities: [
          {
            label: '石家庄'
          },
          {
            label: '承德'
          },
          {
            label: '唐山'
          }
        ]
      }
    ]
  },
  {
    label: '美国',
    flag: 'us.png',
    provinces: [
      {
        label: '纽约',
        cities: [
          {
            label: '曼哈顿区'
          },
          {
            label: '皇后区'
          }
        ]
      },
      {
        label: '德克萨斯州',
        cities: [
          {
            label: '休斯顿'
          },
          {
            label: '达拉斯'
          }
        ]
      },
      {
        label: '加利福尼亚州'
      }
    ]
  }
]);
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
大家讲道理

没创建module?

angular.module('ngShowcaseApp',[]). controller(...)

PHP中文网

页面下拉列表的数据是从controller里面的vm塞进去的,三个列表最好通过三个变量控制:

country
province
city

当country变化的时候(通过$watch(country))设置province列表的数值,同理设置city列表

DEMO


另外,关于你提到的报错怀疑是不是javascrpt语法不对,

angular.module('ngShowcaseApp',[])

注意那个逗号。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号