angular.js - 网上都查不到,angularjs中,如果index.html中设置了控制器还能设置路由吗?
phpcn_u1582
phpcn_u1582 2017-05-15 17:07:43
[AngularJS讨论组]

做一个angular的路由的小例子,发现如果要设置路由,页面上如果已有controller控制器,则出现报错,删掉controller控制器之后,路由就正常,这两者有怎样的关系呢?不明白,坐等大神,谢谢解惑!ps:页面中的controller控制器有其他用处,此处为了代码简单,删掉了其中的内容。

报的错误为:

phpcn_u1582
phpcn_u1582

全部回复(3)
天蓬老师

因为路由会有一个控制器,如果在html页面再绑定一个ng-controller的话,等于有两个,这会冲突的。最好将页面控制器的内容写在路由控制器里面。用了路由,就单独写控制器了。

阿神

推荐在路由中配置controller,你可以这样做

 $stateProvider
            .state('main', {
                url: '/main',
                views: {
                    'main':{
                        templateUrl:'app/pages/main/listView/listView.html',
                        controller:'listViewCtrl'
                    }
                }
            })

这样就可以把templateUrl指定的模板和你定义的controller对应起来,名字相同就可以了。

另外如果在路由中设置了controller后,在模板中也设置了ng-controller,会出现一些问题,比较典型的就是如果这个页面进入时需要发起请求,你会发现它会重复发2次请求

阿神

题目中给出的错误信息是控制器main没有定义。

页面可以有多个控制器,控制器也可以嵌套,并且不会有什么冲突。

控制器可以写在页面中,也可以在路由中配置,并且不会有什么冲突。

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

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