2016-02-19 19 views
5

Bir kapsam değişkenini güncelleyen bir iyonik seçim kutusu var. Ayrıca, bu kapsam değişkenine bağlı bir işlev olan bir kapsam işlevine sahibim (örneğin, değişkenin belirli bir değer olup olmadığını sınar). Fonksiyonun sonucu, iyonik seçim kutusu ile güncellenirken, temel angularJs'de güncellenmiş gibi görünmüyor. Fonksiyon yerine gerçek durumu gömmek iyonik için çalışıyor gibi görünüyor.İyonik seçim, kapsam değişkenine bağlı olarak işlevi güncelleştirmiyor

iyonik örnek:

$scope.testValue = 'value1'; 

$scope.variableFunction1 = function() { 
    return $scope.testValue === 'value2'; 
} 

ilgili html:

Does not change: {{variableFunction1()}}<br/> 
Does change: {{testValue === 'value2'}}<br/> 

<div class="item item-input item-select"> 
    <div class="input-label"> 
    testValue 
    </div> 
    <select ng-model="testValue"> 
    <option value="value1">Val1</option> 
    <option value="value2">Val2</option> 
    <option value="value3">Val3</option> 
    </select> 
</div> 

aynı açısal örneğin, ı beklendiği gibi çalışır: http://jsfiddle.net/mm5vg0oa/

denetleyicisi http://codepen.io/anon/pen/VeOXzb

ilgili JavaScript

Bu bir hata mı yoksa yanlış mıyım? İyonik bir şey var mı?

cevap

3

Benim tahminim bu ion-content yeni bir çocuk kapsamı yaratır; bu, seçimde bir değer seçtiğinizde, ion-content kapsamına (denetleyici kapsamından farklı olan) yeni bir testValue değişkeni ayarlandığı anlamına gelir. ion-content içinde bir eleman üzerinde

  1. Set ng-controller:

    İki seçeneğiniz vardır.

  2. Seçilen değeri bir dize yerine tutmak için bir nesne kullanın (Bkz. Örnek burada: http://codepen.io/anon/pen/WrBzBq).

Bu sayfa oldukça iyi sorunu açıklıyor: https://github.com/angular/angular.js/wiki/Understanding-Scopes

+0

Tamam ben bir çözüm olarak ikinci seçeneği kullanacaktır. Ama açıklamalarınızı tamamen anladığımdan emin değilim. İyon içeriği testValue'sini kendi kapsamı içinde değiştiriyorsa, kapsam değişkeni asla değer değiştirmez mi? –

+0

Örneğin bu kemanda: http://codepen.io/anon/pen/bEyMwX denetleyici kapsamındaki 'value1' üzerinde kalmaz mı? –

+0

Tamam, boşver, açıklaman 100% doğru görünüyor. Eklediğim yerde {{testValue}} eklemek, değişkeni iyon içerik kapsamına yazdırır. Bu bir http://codepen.io/anon/pen/QyRrpb'de, başlıktaki değeri basar, bu da içeriğin değil, denetleyicinin değerini basacaktır. Yardım için teşekkürler! –

İlgili konular