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

这是指令中范围界定的一个已知问题。您可以阅读文章The Nuances of Scope Prototypal Inheritance以了解有关 Angular js 中作用域的更多信息。

您需要更改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

一种选择是在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 回答