如何在下拉列表中显示数据库中当前选定的值

时间:2017-01-25 04:39:03

标签: angularjs sqlite dropdown

我目前正在处理项目的更新功能。 我有群组的下拉列表。我想显示所述下拉列表的当前所选值/选项。该值将从SQLite数据库中检索。下面的代码仅显示从数据库中检索的选项,但不显示当前选定的值。

HTML:

      <select name="groups" ng-model="memProfAdd.groups">
                <option ng-repeat="group in memGroups" value="{{group.id}}">
                    {{group.name}}
                </option>
       </select>

JS:

 //DROPDOWN: Member Groups
  var query = "SELECT id, name FROM groups";
  $cordovaSQLite.execute(db, query, []).then(function(res){
    if (res.rows.length > 0) {
      for (var i=0; i < res.rows.length; i++) {
        $scope.memGroups.push(res.rows.item(i));
      }
    }
  }, function(err){
    $cordovaToast.showShortBottom('Something Went Wrong').then(function(success){}, function(err){});
    console.log(err.message);
  });

2 个答案:

答案 0 :(得分:0)

为此,您必须先为$scope.memProfAdd.groups分配一些值。

 //DROPDOWN: Member Groups
  var query = "SELECT id, name FROM groups";
  $cordovaSQLite.execute(db, query, []).then(function(res){
    if (res.rows.length > 0) {
      for (var i=0; i < res.rows.length; i++) {
        $scope.memGroups.push(res.rows.item(i));
      }
      $scope.memProfAdd.groups = $scope.memGroups[0].id;
    }
  }, function(err){
    $cordovaToast.showShortBottom('Something Went Wrong').then(function(success){}, function(err){});
    console.log(err.message);
  });

答案 1 :(得分:0)

这对我有用:

HTML

<label class="item item-input item-select">
            <span class="input-label">
                <b>Religion</b>
            </span>
            <select name="religions">
                <option selected>{{currentReligion.name}}</option>
                <option ng-repeat="religion in otherReligions" 
                value="{{religion.id}}">
                    {{religion.name}}
                </option>
            </select>
        </label>

JS:

//Get selected current religion
  $scope.currentReligion = [];
  var query = "SELECT religions.name FROM members "
  + "INNER JOIN religions ON members.religion_id=religions.id WHERE members.id=?"
  $cordovaSQLite.execute(db, query, [$scope.memberID]).then(function(res){
   if (res.rows.length > 0) {
      for (var i=0; i < res.rows.length; i++) {
        //$scope.religion.push(res.rows.item(i));
        $scope.currentReligion = res.rows.item(0);
      }
    }
  }, function(err){
    $cordovaToast.showShortBottom('Something Went Wrong').then(function(success){}, function(err){});
    console.log(err.message);
  });

  //Get other religions
  $scope.otherReligions = [];
  var query = "SELECT religions.name FROM religions WHERE religions.name != ?"
  $cordovaSQLite.execute(db, query, [$scope.currentReligion]).then(function(res){
   if (res.rows.length > 0) {
      for (var i=0; i < res.rows.length; i++) {
        $scope.otherReligions.push(res.rows.item(i));
        // $scope.currentReligion = res.rows.item(0);
      }
    }
  }, function(err){
    $cordovaToast.showShortBottom('Something Went Wrong').then(function(success){}, function(err){});
    console.log(err.message);
  });