ng-model值未在<select>中显示

时间:2018-05-24 15:15:13

标签: android angularjs ionic-framework sqlite

我有我的HTML: &lt; label class =“item item-input item-stacked-label”ng-repeat =“nl in normativas”&gt;     &lt; select ng-model =“nl.idResultado”&gt;         &lt; option value =“1”&gt; OK&lt; / option&gt;         &lt; option value =“2”&gt; NOT&lt; / option&gt;         &lt; option value =“3”&gt; MAYBE&lt; / option&gt;     &LT; /选择&GT; &LT; /标签&gt; &lt; button ng-click =“guardarNormativas()”&gt;和保存&LT; /按钮&GT; 创建视图 当$ scope.normativas = []; 我可以为nl.idResultado选择值,我在我的数据库中保存$ scope.normativas的内容,其中每个nl.idResultado保存为1,2或3.这一切都很好。 编辑视图 当我解救这个$ scope.normativas并使用nl.idResultado = 1(例如)在同一HTML中渲染时,&lt; select&gt;不显示“确定”作为默认值。 从sqlite数据库正确接收值nl.idResultado。 我究竟做错了什么?

2 个答案:

答案 0 :(得分:1)

问题是数值1不等于字符串值“1”。默认情况下,选择元素具有字符串值,并且有几种方法。正如Aleksey指出您可以使用ng-value,但使用非字符串值设置选择的另一种方法是使用ng-options。有时候使用ng-value会更容易,但我会在这里给你一个替代方案。

angular.module('app', [])
  .controller('ctrl', ($scope) => {
    $scope.optionValues = [{
      value: 1,
      text: 'OK'
    }, {
      value: 2,
      text: 'NOT'
    }, {
      value: 3,
      text: 'MAYBE'
    }];
    $scope.selectedValue = 1;
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.5/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
  <select ng-model="selectedValue" 
          ng-options="option.value as option.text for option in optionValues">
  </select>
</div>

答案 1 :(得分:0)

您需要使用get(..)代替get_context_data(..)。它会正确地将它绑定到范围。这是一个演示:

&#13;
&#13;
ng-value
&#13;
value
&#13;
&#13;
&#13;