我正在尝试使用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)
我该怎么办?
答案 0 :(得分:27)
指令范围界定是一个已知问题。您可以阅读文章The Nuances of Scope Prototypal Inheritance以了解有关角度js中范围的更多信息。
您需要将ng-repeat
更改为
<li ng-repeat="item in list">
<a ng-click="$parent.current = item">
Dynamic set {{item}}
</a>
</li>
演示:Fiddle
有关问题的解释,您可以阅读my answer至this question
答案 1 :(得分: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;
}
答案 2 :(得分: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>