我遇到了與問here相同的問題,並且解決方案也起作用。但是在創建示波器的時候無法將我的頭包裹起來。如果在以下代碼中的$ modal指令中創建了新範圍,那麼爲什麼範圍在modal.html(view)和ModalInstanceCtrl中有所不同?何時使用angularUI Bootstrap Modal創建新範圍?
在下面的片的從同樣的問題代碼:
$scope.open = function() {
var modalInstance = $modal.open({
templateUrl: 'modal.html',
controller: 'ModalInstanceCtrl'
});
(主要的問題是在modal.html的NG-模型=在同一範圍內對象作爲$範圍「文本」不是其控制器:ModalInstanceCtrl。)
我對範圍的理解是,rootcope首先由ng-app創建。然後新的範圍由創建新範圍的指令創建。
主要差異是,在路由,該結構類似於上述的代碼:
$routeProvider
.when('/', {
redirectTo: '/pages'
})
.when('/food', {
templateUrl: 'food.html',
controller: 'foodController'
})
.when('/play', {
templateUrl: 'play.html',
controller: 'playController'
});
儘管相似性,這裏在templateUrl(視圖)和控制器的範圍目的是相同的,那麼,爲什麼在最前一頁在templateUrl(視圖)和控制器是不同的代碼範圍?在引用的問題中,回答中的評論是由於嵌套控制器,我發現在第二段代碼中沒有嵌套控制器,而在第一段中存在嵌套。但是這並不能說明爲什麼在第一段代碼中,視圖和控制器中的作用域是不同的,何時創建新的作用域。
非常完整,翔實,準確的答案! –
哦......所以在這裏,ng-transclude指令是創建新範圍的罪魁禍首。還有一件事我想清楚,ModalDemoCtrl的$範圍是否與ModalInstanceCtrl的$範圍相同? (在我提到的問題中) – Anubha
不,他們是不同的。 –