Параметры AngularJs - ng не привязываются после вызова ajax

Я пытаюсь изменить выбранный индекс ng-options после ajax-вызова, но он не изменится.

//Html Section...

<select id="fooId" ng-model ="foo.formula"
   ng-options="formulas as name for (formulas, name) in the_formula"></select>

//End Html Section...


//js file...

//get list of formula from server...
TheSource.Get.then(function(response){
    $scope.the_formula = response.the_formula;
});


//do something awesome, then..
//binding data from server...

TheData.Get.then(function(response){
    //binding the data to view...
    //all of the element is binding, except the ng-options part..
    $scope.foo = response; 

    //not working..
    //$scope.formula = response.formulaId //it is return integer ID like (1, 2, 3, etc..)
});

// End js file...

И это данные, которые отправляются My API.

{ 
   "the_formula":{
     "123":"formula1",
     "124":"formula2"
   }
}

Что случилось? Как автоматически изменить выбор в ng-опциях?

Ответ 1

@reptildarat

Здравствуйте,

Я тоже застрял в той же ситуации, когда я работал с select и ng-option.:)

Что вам нужно сделать -

Задайте значение "foo.formula" после того, как данные, извлеченные из вызова ajax, будут выполнены. Причина. Когда отображается Html. Он связывает "foo.formula" в теге select. В то время нет населенных пунктов. Через некоторое время элементы заполняются сзади (js), и триггер не запускается для этой ng-модели.

После многих усилий я нашел это -

Пример -

Вот что вам нужно сделать в js.

   .success(function (data) {  
            $scope.$emit('HideLoading');  
            $scope.departments = data.DepartmentsGetResult;  
            $scope.selectedDepartment = item.DepartmentId;  

Вот мой HTML-

<select   
   data-ng-model="selectedDepartment"   
   data-ng-options="dept.DepartmentId as dept.Title for dept in departments" >  
 </select>  

Надеюсь, это поможет. Дайте мне знать ваши проблемы. :)