Bootstrap Dropdown と AngularJS でピッカーを作成しようとしています。
<li ng-repeat="item in list"><a ng-click="current = item">Dynamic set {{item}}</a></li>
リストで静的に ng-click を使用すると、正常に動作します (例 4 および 5) しかし、ng-repeat で ng-click を使用すると、値が更新されません (例 1 ~ 3)
私に何ができる ?
Bootstrap Dropdown と AngularJS でピッカーを作成しようとしています。
<li ng-repeat="item in list"><a ng-click="current = item">Dynamic set {{item}}</a></li>
リストで静的に ng-click を使用すると、正常に動作します (例 4 および 5) しかし、ng-repeat で ng-click を使用すると、値が更新されません (例 1 ~ 3)
私に何ができる ?
これは、ディレクティブのスコープに関する既知の問題です。angular js でのスコーピングの詳細については、The Nuances of Scope Prototypal Inheritanceの記事を参照してください。
ng-repeatに変更する必要があります
<li ng-repeat="item in list">
<a ng-click="$parent.current = item">
Dynamic set {{item}}
</a>
</li>
デモ:フィドル
1つのオプションは、内でセッター関数を使用することですng-click
HTML:
<li ng-repeat="item in list"><a ng-click="setCurrent( item)">Dynamic set {{item}}</a></li>
JS
function MyCtrl($scope) {
$scope.list = [1,2,3];
$scope.setCurrent=function(val){
$scope.current =val;
}
$scope.current = 0;
}
まさにそれを行う angularjs ディレクティブがあります: https://gist.github.com/andyvr/5205764
jsfiddle の例を次に示します: http://jsfiddle.net/M32pj/1/
Sample:
<select ng-model="example1" bs-selectbox>
<option value="1">One</option>
<option value="2">Two</option>
</select>