angular.js - 網路上都查不到,angularjs中,如果index.html中設定了控制器還能設定路由嗎?
phpcn_u1582
phpcn_u1582 2017-05-15 17:07:43
0
3
724

做一個angular的路由的小例子,發現如果要設定路由,頁面上如果已有controller控制器,則出現報錯,刪除controller控制器之後,路由就正常,這兩者有怎樣的關係呢?不懂,坐等大神,謝謝解惑! ps:頁面中的controller控制器有其他用處,這裡為了程式碼簡單,刪除了其中的內容。

報的錯誤為:

phpcn_u1582
phpcn_u1582

全部回覆(3)
Peter_Zhu

因為路由會有一個控制器,如果在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沒有定義。

頁面可以有多個控制器,控制器也可以嵌套,並且不會有任何衝突。

控制器可以寫在頁面中,也可以在路由中配置,並且不會有任何衝突。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板