javascript - 为在 Angular 下拉列表中创建的默认空白选项设置占位符文本?

标签 javascript angularjs angularjs-directive ng-options

问题

如何将占位符文本添加到由 Angular ng-options 创建的空白选项中.我希望下拉菜单中的空白选项显示“请选择尺寸”

警告: * 注意:这是一个额外的奇怪的因为我有大小集合被 split(',') 因为它不是一个数组*

Live Code Fiddle

HTML:

<form ng-app="app" ng-controller="Ctrl">
    <div class="color-pick" ng-repeat="(key, val) in productData.colors_and_sizes.data">
        <input type="radio" name="colors" ng-model="$parent.myColor" ng-value="key" />
        <img ng-click="$parent.myColor = key" ng-src="{{val.swatch_image}}" alt="">{{key}} 
        <div class="size-pick" ng-show="$parent.myColor==key">
            <select ng-model="$parent.mySize" ng-options="size for size in val.sizes.split(',')"></select>
        </div>
    </div>
    myColor: {{myColor}}<br/>
    mySize: {{mySize}}
</form>

JS:

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

app.controller('Ctrl', function ($scope, $filter, $http) {
 $scope.productData = {
  "colors_and_sizes": {
    "data": {
      "Black": {
        "swatch_image": 'http://lorempixel.com/50/50',
        "sizes": "X Small, Small, Medium, Large, Xlarge, XX Large"
      },
      "Blue": {
        "swatch_image": 'http://lorempixel.com/50/50',
        "sizes": "X Small, Small, Medium, Large, Xlarge, XX Large"
      }
    }
  }
};

});

最佳答案

请参阅此处http://jsfiddle.net/jg42xsop/ 有些人说我们应该使用 ng-init 而不是使用 $parent

<form ng-app="app" ng-controller="Ctrl">
    <div class="color-pick" ng-repeat="(key, val) in productData.colors_and_sizes.data" ng-init="item = this">
        <input type="radio" name="colors" ng-model="item.myColor" ng-value="key" />

        <img ng-click="item.myColor = key" ng-src="{{val.swatch_image}}" alt="">
            <p>{{key}} </p>

            <div class="size-pick"  ng-show="item.myColor==key">
            <select ng-model="item.mySize" ng-options="size for size in val.sizes.split(',')">
                 <option value="">Please choose a size</option>
            </select>

            </div>

            <p>  myColor: {{myColor}}</p>
            <p> mySize: {{mySize}} </p>
            <hr/>
        </div>
</form>

关于javascript - 为在 Angular 下拉列表中创建的默认空白选项设置占位符文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25252881/

相关文章:

angularjs - 指令的 bool 范围值

javascript - 为什么调用 indexedDB.deleteDatabase 会阻止我进行任何进一步的交易?

使用 P5.js lib 的 javaScript 气泡类示例,代码在一段时间后崩溃。我该如何规避和克服这一点?

javascript - 如何用 gulp 删除 templateCache?

javascript - Ui-view 不更新 Controller 中的值

angularjs - 与指令的两种方式数据绑定(bind)不起作用

javascript - 当我开始在文本框中打印时如何删除自动完成选择?

javascript - 具有特定单元格功能的下拉菜单

javascript - 按下提交按钮后淡化 <div> 元素

javascript - 指令永远不会被称为angularjs