0

Ich habe Angular1 selects schon einmal benutzt, aber ich habe eine wilde Zeit, die entwirrt, was eine Auswahl bricht, mit der ich gerade arbeite.Debuggen von Angular1 Dropdown-Menü wählen

Hier ist die Vorlage für die select ich zu bauen bin versucht:

<div class="dropdown-selector-container"> 
    <select 
    class="dropdown-select" 
    data-ng-options="option.sectionId as option.label for option in dropdownOptions" 
    data-ng-model="selectedSection" 
    data-ng-change="setDropdownOption()"> 
    </select> 
</div> 

Das Objekt und Verfahren in der Steuerung wie folgt aussehen:

$scope.dropdownOptions = [ 
    { 
    'label': 'ok', 
    'sectionId': '1', 
    }, 
    { 
    'label': 'wow', 
    'sectionId': '2', 
    } 
]; 

$scope.setDropdownOption = function() { 
    console.log($scope); 
}; 

Eine Arbeits Geige des beabsichtigten Verhalten verfügbar here.

Das Problem ist, wenn ich replizieren den Code aus dem Geige in einem template und controller innerhalb einer Route in meinem development instance (wo der Drop-Down auf Ansichtsfenster mit einer Breite 800px oder weniger nur sichtbar ist), Objekt des $ Zustand durch die gedruckt Reglerfunktion keine selectedSection Schlüssel enthalten:

enter image description here

weiß jemand, warum das der Fall sein könnte? Ich wäre sehr dankbar für jeden Rat, den Sie anbieten können!

+0

Für AngularJS Debuggen, ich empfehle dieses [Addon] (https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk ? utm_source = chrome-ntp-icon) für chrome –

+0

Oh, du verwendest es schon ich denke –

+0

Ja, danke! Ich habe gerade entdeckt, dass angle.element (". Dropdown-selector-container select"). Scope() '(von der Konsole aus) mir einen direkten Einblick in den Zielbereich meines Zielelements gibt. Das Element hat das Scope-Objekt 'selectedSection', es wird einfach nicht propagiert ... – duhaime

Antwort

2

Der Schlüssel zur Lösung dieses Problems war zu lernen, dass man den Umfang eines Elements von der Konsole mit etwas wie angular.element(".dropdown-selector-container select").scope() untersuchen kann. Dies führte mich zu einer Lösung:

Ich bemerkte, dass das DropDropOptions-Objekt in der Controller-Bereich vorhanden war, so dass ich das Data-ng-Modell auf dropdownOptions.selected, und bei Änderung kann ich jetzt mit diesem Wert interagieren.

diese Art der Vererbung React macht so viel schöner ...