javascript - 将 ng-options 初始化为模型值

标签 javascript html angularjs ng-options angularjs-ng-options

我需要预先填写<select>具有范围中的一些选项的元素,并且希望将其值绑定(bind)为最初选择的模型。

问题在于未选择模型值,而是创建并选择了一个空白元素。

JSON 模型

var fruits = {
    "0":"apple",
    "1":"pear",
    "2":"banana"
 }

Controller

$scope.items = fruits;
$scope.myfruit = 1; // also tried "1"

模板标记:

<select class='form-control' name="fruit" 
    ng-model="myfruit"              
    ng-options="key as val for (key, val) in items" >                       
</select>

下拉菜单将呈现所有存在的值,并使用键更新模型(按预期),但第一个元素是选定的空项目。

但是,一旦选择了某个选项,空选项就会消失。

我还尝试使用 ng-repeat 编写标记结果相同:

<select class='form-control' name="fruit" 
    ng-model="myfruit" >
    <option ng-repeat="(k, val) in items" value="{{k}}">{{val}}</option>                        
</select>

如何获取初始化时要选择的模型中表示的值?

最佳答案

您的选项值是一个字符串

这应该有效。

$scope.myfruit = "1"; 

检查下面的工作示例

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {

  var fruits = {
    "0": "apple",
    "1": "pear",
    "2": "banana"
  }

  $scope.items = fruits;
  $scope.myfruit = "1"; 


});
<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.12/angular.js" data-semver="1.4.9"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    
    <select class='form-control capitalize' name="cost" 
    ng-model="myfruit"              
    ng-options="key as val for (key, val) in items" >                       
    </select>
  
    
  </body>

</html>

关于javascript - 将 ng-options 初始化为模型值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41529892/

相关文章:

html - 绝对元素高度和宽度 100% 在具有桌面站点 View 的移动设备上

python - 从 Python 中的任何站点抓取链接标题的一般方法?

javascript - 在内容完全加载之前不显示页面

javascript - 如何在 Angularjs 中获取 $mdDialog 中的 HTML 元素

javascript - 在控制台中打印对象时未定义的输出

javascript - 按类别名称过滤数组

angularjs - 仅 Firefox 中出现 Angular 错误 "Multiple directives asking for isolated scope"

javascript - Google Maps API v3 标记掉落和反弹动画

java - 如何使用angular js spring mvc上传多部分文件

javascript - 如何在 .on click 事件中使用 $scope ?