0
獲取選定的選項所以,我試圖爲我的應用程序做一個簡單的產品訂單。 Ionic彈出窗口中有一個select元素,它顯示產品名稱和價格(這是數據庫中的單獨字段)。現在,我需要將用戶選擇的產品的第三條信息 - 用於INSERT查詢的產品的ID存儲到數據庫中,但我似乎無法做到這一點。誰能告訴我我在做什麼錯在這裏:AngularJS - 從選擇
$scope.openPopup = function(id, name){
$scope.data = {};
// Custom popup
var myPopup = $ionicPopup.show({
template: 'Choose product: <select ng-model="data.selected">\n\
<option ng-repeat="product in products" ng-value="product.id">{{product.name}} - Price: {{product.price}}€</option>\n\
</select>',
title: 'Order form',
scope: $scope,
buttons: [
{ text: 'Cancel' }, {
text: '<b>Save</b>',
type: 'button-positive',
onTap: function(e) {
if (!$scope.data.selected) {
//don't allow the user to close unless he enters model...
console.log("no data");
e.preventDefault();
} else {
console.log("Product: " + $scope.data.selected);
var selectedProduct = $scope.data.selected;
// INSERT query here
}, function (err) {
console.error(err);
});
}
}
}
]
});
myPopup.then(function(res) {
console.log('Tapped!', res);
});
};
問題是,代碼不會去的else分支,因爲$ scope.data.selected未設置。但是不應該將SELECT元素的ng-value綁定到OPTION元素的id中?我聽說使用ng-options也是一種選擇,但是我不知道它是否能夠在一個選項元素中呈現多個值。
該代碼正在從文件的早期部分獲得產品,我不會在這裏發佈,因爲它工作正常(產品名稱出現在select元素中)。
我已經通過選擇一個選項來測試它,而且所有的ID都大於0.我不確定它爲什麼沒有得到它。 – sakke221