2013-02-26 7 views

Antwort

27

Es ist ein bekanntes Problem mit dem Scoping in Richtlinien. Sie können den Artikel The Nuances of Scope Prototypal Inheritance lesen, um mehr über das Scoping in eckigen js zu erfahren.

Sie müssen die ng-repeat zu

<li ng-repeat="item in list"> 
    <a ng-click="$parent.current = item"> 
    Dynamic set {{item}} 
    </a> 
</li> 

Demo ändern: Fiddle

Zur Erläuterung des Problems, können Sie my answer-this question

+1

Oder verwenden Sie die Richtlinie: Alle Bereichreferenzen sollten enthalten a. (dot) Mike

+2

Die ursprüngliche Geige ist verrottet (weil sich der angular-ui-Bibliothekspfad geändert hat). Hier ist eine aktualisierte [Fiddle] (http://jsfiddle.net/qbjfQ/288/). – nmgeek

3

Eine Option lesen ist eine Set-Funktion zu verwenden, innerhalb 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;  
} 

DEMO: http://jsfiddle.net/qbjfQ/2/

+0

Geige funktioniert nicht mehr fyi – Ammar

1

Es gibt eine AngularJS Richtlinie, die genau das tut: https://gist.github.com/andyvr/5205764

Hier ist die jsfiddle mit Beispielen: http://jsfiddle.net/M32pj/1/

Sample: 
<select ng-model="example1" bs-selectbox> 
<option value="1">One</option> 
<option value="2">Two</option> 
</select> 
+0

Ich versuche, dies zu verwenden, aber wie lade ich die Richtlinie neu. Meine Optionen kommen von einer entfernten Quelle. –

+0

Bitte aktualisieren Sie Ihren Quellcode in Ordre zu $ ​​kompilieren Sie Ihre Vorlage. Es funktioniert nicht mit AngularJS 1.2+. Danke. –