9

Bootstrap Dropdown と AngularJS でピッカーを作成しようとしています。

http://jsfiddle.net/qbjfQ/

<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)

私に何ができる ?

4

3 に答える 3

27

これは、ディレクティブのスコープに関する既知の問題です。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>

デモ:フィドル

問題の説明については、この質問に対する私の回答を読むことができます

于 2013-02-26T13:25:03.190 に答える
3

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;    
}

デモ: http://jsfiddle.net/qbjfQ/2/

于 2013-02-26T14:10:09.243 に答える
1

まさにそれを行う 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>
于 2013-03-20T16:03:34.900 に答える