AngularJS中的ng-options在集合更改后不会重新绑定



我正在使用dataFactory通过进行api调用来获取集合。

    productApp.factory("productDataFactory", function($http){
  return {
    getUnits: function() {
      return $http.get('/unit').then(function(resp) {
        return resp.data; // success callback returns this
      });
    },
    getCommodities: function() {
      return $http.get('/commodity').then((resp) => {
        return resp.data;
      })
    }
  };
});

我在 ng-options 中使用商品集合来填充选择元素的选项。

<select ng-model='selected_Commodity' ng-change="updateGST()" name="commodity" id="commodity" ng-options = " c as c.commodity_name for c in <%= JSON.stringify(commodities) %> track by c "class="form-control  selectpicker" data-size="4" data-live-search="true" data-index="5" >
                              <option value="" ng-hide='selected_Commodity'>Select Commodity</option>
                              </select>

我正在更新事件的集合。我在日志中获取更新的值。但它并没有反映在我的观点中。

var getCommodities = function() {
    var deferred = $q.defer();
    productDataFactory.getCommodities().then((data) => {
      if (data.type === 'success') {
        debugger;
        console.log("Inside factory ");
        console.log(JSON.stringify(  data.commodities ));
        deferred.resolve(data.commodities);
      } else {
        // $scope.commodities = [{name : data.type + data.msg}]
        deferred.reject([{name : data.type + data.msg}]);
      }
    })
    return deferred.promise;
  }
$('#commodityModal').on('hide.bs.modal', function () {
    $scope.commodities = []
    getCommodities().then((data) => {
      $scope.commodities = data
      console.log("Inside Hide ");
      console.log(JSON.stringify(  $scope.commodities ));
      $("#commodity").selectpicker('refresh')
      console.log("Refreshed");
    })
  })

请帮助我如何使用更新的值重新绑定我的选择元素。

像这样将此行放在超时中,并将超时添加为依赖项

$timeout(function(){
   $("#commodity").selectpicker('refresh');
});

更改 ng 选项

ng-options = " c as c.commodity_name for c in <%= JSON.stringify(commodities) %> track by c "

ng-options = " c as c.commodity_name for c in commodities track by c " 

最新更新