我正在使用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 "