如果定義2個不同的控制器,你會得到兩個不同的範圍
<section ng-controller="ctrl1">
<button ng-click="boxOpen = !boxOpen">Open/Close</button>
<div ng-show="boxOpen">Stuff in here</div>
</section>
<section ng-controller="ctrl2">
<button ng-click="boxOpen = !boxOpen">Open/Close</button>
<div ng-show="boxOpen">Other stuff in here</div>
</section>
你也可以做一個指令
HTML
<section my-show-hide-dir>
<button ng-click="boxOpen = !boxOpen">Open/Close</button>
<div ng-show="boxOpen">Stuff in here</div>
</section>
<section my-show-hide-dir>
<button ng-click="boxOpen = !boxOpen">Open/Close</button>
<div ng-show="boxOpen">Other stuff in here</div>
</section>
JS
app.directive("myShowHideDir",
function() {
return {
restrict: 'A',
controller: ['$scope', '$element', '$attrs',
function($scope, $element, $attrs) {
$scope.boxOpen = false;
}
]
}
}
);
爲什麼不以不同的方式命名變量?完全創建一個新的範圍/控制器似乎對我來說過分了 –
我希望能夠在各個地方重複使用標記,而不必爲每個地方提供一個唯一的名稱。 – saricden
在這種情況下,最好的方法是創建一個指令,如[@BastienSander](http://stackoverflow.com/users/1361124/bastiensander)所指出的。 –