angular.js - 網上都查不到,angularjs中,如果index.html中設置了控制器還能設置路由嗎?
問題描述
做一個angular的路由的小例子,發現如果要設置路由,頁面上如果已有controller控制器,則出現報錯,刪掉controller控制器之后,路由就正常,這兩者有怎樣的關系呢?不明白,坐等大神,謝謝解惑!ps:頁面中的controller控制器有其他用處,此處為了代碼簡單,刪掉了其中的內容。
報的錯誤為:
問題解答
回答1:因為路由會有一個控制器,如果在html頁面再綁定一個ng-controller的話,等于有兩個,這會沖突的。最好將頁面控制器的內容寫在路由控制器里面。用了路由,就單獨寫控制器了。
回答2:推薦在路由中配置controller,你可以這樣做
$stateProvider .state(’main’, {url: ’/main’,views: { ’main’:{templateUrl:’app/pages/main/listView/listView.html’,controller:’listViewCtrl’ }} })
這樣就可以把templateUrl指定的模板和你定義的controller對應起來,名字相同就可以了。
另外如果在路由中設置了controller后,在模板中也設置了ng-controller,會出現一些問題,比較典型的就是如果這個頁面進入時需要發起請求,你會發現它會重復發2次請求
回答3:題目中給出的錯誤信息是控制器main沒有定義。
頁面可以有多個控制器,控制器也可以嵌套,并且不會有什么沖突。
控制器可以寫在頁面中,也可以在路由中配置,并且不會有什么沖突。
相關文章:
1. angular.js - angularjs中如何實現單擊一個span標簽之后,拿到span標簽中的內容?2. angular.js - angularjs中路由的HTML5模式下的URL問題3. angular.js - angularjs中相同的方法,如何做到觸發只對當前元素有效。4. html - angularjs中用ng-repeat生成幾個radio,怎么設置radio的默認選中項?5. html - angularJS中switch切換開關按鈕不能操作6. angular.js - angularjs中自定義指令scope的問題7. angular.js - angularjs中添加高德地圖API,地圖顯示不正常,控制臺報錯,何解?8. html5 - angularjs中外部模版加載無法使用9. angular.js - angularjs中如何引用css10. html - 求大神!angularjs中錨點鏈接怎么不能用?在angular中有無類似錨點鏈接功能
