Your states is an array with a single element - an object with states as key/value pairs. You can still use an object with ng-options - not sure though why an array is needed - so long as you refer to the source object with "... in states[0]".
ng-options also requires an ng-model.
<select ng-model="selectedState"
ng-options="key as state for (key, state) in states[0]">
</select>
The above would set selectedState to key (i.e. the abbreviation). You can set it to state as well).
Of course, if you don't need states to be an array of a single element and just set it to the element itself, then you could refer to it as "...(key, state) in states" rather than ... in states[0]".
state.[0]? this is not a valid syntax. Also,ng-optionsrequiresng-modelstatesarray has only a single element. Is this intentional? And if you intend to use an object, then the syntax isng-options="key as value for (key, value) in states"(or something like that)