我有一个选择列表,需要根据http响应中的对象默认为某个值:
<select ng-model="isRentVals.cur" ng-options="v for v in isRentVals.values"></select>
响应中的对象名为my_property:
function editPropController($scope, $http) {
$scope.my_property;
$http.get('/api/propertyById/' + $scope.prop_id)
.success(function(properties) {
$scope.my_property = properties[0];
$scope.isRentVals = { "cur" : $scope.my_property.is_rented, "values" : ["true", "false"]};
})
.error(function(err) {
alert('We got an error: ' + err);
});
$ http调用的响应将在select元素绑定到isRentVals.cur之后出现。 isRentVals尚未定义(将在几毫秒后的成功回调中定义)角度插入空val然后绑定。我该如何解决这个问题?
该值默认为空白,我必须在ng_click方法中重置my_property.is_rented以保存新值。
答案 0 :(得分:0)
$ http调用的响应将在select元素绑定到isRentVals.cur后出现。因为isRentVals尚未定义(将在稍后的几毫秒内成功回调中定义)然后角度将空项目插入到select元素以便能够绑定到isRentVals.cur的当前值。另外,为了获得更好的答案,你应该创建一个plunker。
答案 1 :(得分:0)
像这样初始化isRentVals
:
$scope.isRentVals = {}; //initialize as object
并在加载数据时覆盖模型:
function editPropController($scope, $http) {
$scope.my_property;
$scope.isRentVals = {};
$http.get('/api/propertyById/' + $scope.prop_id)
.success(function(properties) {
$scope.my_property = properties[0];
$scope.isRentVals = { "cur" : $scope.my_property.is_rented, "values" : ["true", "false"]};
})
.error(function(err) {
alert('We got an error: ' + err);
});