2013-04-10 33 views
8

Seçme kutusunun seçeneği değiştiğinde bir olayı tetiklemek için Açısal olarak ayarlanmış bir dinleyicim var.Açısal JS - Bir işlevle bir açılır menüyü sıfırlama

Ayrıca, seçim kutusunu boş olarak (NOT seçeneği 1) sıfırlamak istediğim bir düğme var. İşte

bazı kod:

HTML:

<select id="dropdown" ng-model="orderProp" > 
    <option ng-repeat="cats in categories" value="{{cats}}">{{cats}}</option> 
</select> 
<button id="showHide" ng-click="showAll($event)" >Show all results</button> 

JavaScript:

$scope.showAll = function($event){ 
    $scope.orderProp ="0"; 
} 
seçme kutusunu

Dinleyici işlevi:

$scope.$watch('orderProp', function (val) { 
     $scope.filteredMarkersProperty = $filter('filter')($scope.markersProperty, val); 
     $scope.zoomProperty = 11; 
     calcFocus(); 
    }); 

Bu KINDA çalışır, sadece her ne kadar ara sıra, ve neden'un işe yaramadığını (ya da yapmadığımı) hiç düşünmüyorum. JQuery .prop('selectedIndex',0); ile sıfırlamayı denedim, ancak bu dizin sıfırlanırken dinleme işlevini tetiklemez, bu yüzden işe yaramaz.

Herhangi bir fikrin var mı?

+0

Tam sizin için ne çalışmıyor açık değil. Bu 'showAll' işlevi, $ watcher işlevi mi yoksa filtreleme mi yoksa calcFocus işlevi mi? Bir plunker/jsfiddle kurabilirsiniz. – Stewie

cevap

11

İlk - seçme yönergede ngOptions bakmak: '0' kategorilerden biri değildir sürece bu çalışacaktır http://docs.angularjs.org/api/ng.directive:select

<select ng-options="cats for cats in categories" ng-model="orderProps"></select> 

<button ng-click="orderProps='0'">Show all results</button> 

. Select-box, orderProps değeri, kategorilerdeki herhangi bir değerle eşleşmediğinde boş gösterecektir.

$ watch işleviniz, select box konumunda bir dinleyici değil, orderProps noktasını izliyor ve orderProps onay kutusunun dışına değişebilir. Seçim kutusunda bir dinleyici istiyorsanız, bir ng-change = "myOnChangeFn()" ekleyebilirsiniz.

Eklendi bir çalışma plunkr: http://plnkr.co/edit/fqWkJBYOXGaYsK9Fnedc?p=preview

+0

Bu harika, teşekkürler, özellikle $ watch fonksiyonuyla ilgili açıklama için, bunu fark etmedim! – Jascination

+0

Denetleyiciden aynı 'orderProps = '0'' efekti nasıl oluşturulur? – MobileDream

İlgili konular