我正在使用ng-repeat來放置btn組中的angular-ui-bootstrap library多個複選框按鈕。角度記錄說each template instance gets its own scope
。我相信以下ng-repeat
代碼無法工作,因爲它不使用與父控制器相同的作用域,因此無法訪問$scope.zones
。如何在不創建新範圍的情況下使用ng-repeat?
問題:我可以在同一原始$scope
的上下文中使用ng-repeat
?如果是這樣,我可能遇到什麼問題以及其他哪些方法可以使我正確地工作?
HTML
<div class="btn btn-primary" ng-repeat="(zone, action) in zones track by $index" btn-checkbox ng-model="zones['{{zone}}'])"> Zone - {{zone}}</div>
工作版
<div btn-checkbox="btn-checkbox" ng-model="zones['one']" class="btn btn-primary">Zone 1</div>
<div btn-checkbox="btn-checkbox" ng-model="zones['two']" class="btn btn-primary">Zone 2</div>
<div btn-checkbox="btn-checkbox" ng-model="zones['three']" class="btn btn-primary">Zone 3 </div>
<div btn-checkbox="btn-checkbox" ng-model="zones['goal']" class="btn btn-primary">Goalie Zone </div>
JS(控制器內部)
/* Zones */
$scope.zones = {
'one': false,
'two': false,
'three': false,
'goal': false
};
比ks
我使用第二種方法,但我想設置動態地根據在'$範圍鍵屬性。 zones'。看代碼。 –
然後,您的下一個選項是在區域周圍創建一個包裝,以便您可以使用點符號。 –
包裝理念確實奏效,但我必須以不同的方式實施它。看到我的答案。 –