ng-controller是為應(yīng)用變量添加控制器
當(dāng)有兩個(gè)控制器father、child且child 在 father內(nèi),那child 可以稱為子控制器,它將繼承父控制器father的scope。child就可以訪問到father的scope中的所有函數(shù)和變量。
例:
<div ng-controller="father"> <div >name1:{{ name1 }}</div> <div ng-controller="child">name2:{{ name2 }}</div></div>情況1:
app.controller("father",function ($scope) { $scope.name1 = "x"; $scope.name2 = "y";});頁面顯示結(jié)果:
name1:x name2:y
情況2:
app.controller("child",function ($scope) { $scope.name1 = "a"; $scope.name2 = "b";});頁面顯示結(jié)果:
name1: name2:b:
情況3:
app.controller("father",function ($scope) { if($scope.name1){ $scope.name1 += "!"; console.log($scope.name1); } else { $scope.name1 = "@"; console.log($scope.name1); } if($scope.name2){ $scope.name2 += "#"; console.log($scope.name2); } else { $scope.name2 = "$"; console.log($scope.name2); } console.log("father");});app.controller("child",function ($scope) { if($scope.name1){ $scope.name1 += "%"; console.log($scope.name1); } else { $scope.name1 = "^"; console.log($scope.name1); } if($scope.name2){ $scope.name2 += "&"; console.log($scope.name2); } else { $scope.name2 = "*"; console.log($scope.name2); } console.log("child");});控制臺(tái)打印結(jié)果:
@$father@%$&child
頁面顯示結(jié)果:
name1:@name2:$&
可以看出name1的頁面顯示結(jié)果與控制臺(tái)打印結(jié)果不一致
結(jié)論:
父級(jí)控制器先執(zhí)行而子級(jí)控制器后執(zhí)行。父級(jí)和子級(jí)控制器都可對(duì)父級(jí)下scope作用域進(jìn)行訪問操作,但當(dāng)子級(jí)控制器嘗試處理父級(jí)作用域內(nèi)、子級(jí)作用域外的數(shù)據(jù)則可能會(huì)導(dǎo)致父級(jí)中的數(shù)據(jù)變臟。
以上這篇基于Angular中ng-controller父子級(jí)嵌套的相關(guān)屬性詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持錯(cuò)新站長(zhǎng)站。
新聞熱點(diǎn)
疑難解答
圖片精選