如何将空字符串值从ng-model映射到具有value =“”的选项

时间:2019-05-14 11:47:56

标签: angularjs

Angularjs添加带有value =“?”的选项。当ng-model为空字符串时,使用预定义选项value =“”进行选择。如何将空字符串值映射到选项value =“”并避免选项value =“?”?

我在angularjs 1.4.9及更低版本上没有看到此问题。如果范围值为null,而不是空字符串,它也可以正常工作。

控制器和指令

.controller('Ctrl', ['$scope', function($scope) {
    $scope.value = '';
  }])
  .directive('simpleDropdown', function() {
    return {
      restrict: 'E',
      scope: {
        unselectedText: '@'
      },
      template: '<select ng-options="x.key as x.description for x in lookupModel">' +
        '<option value="" selected="selected">{{ unselectedText }}</option>' +
        '</select>',
      replace: true,
      compile: function compile() {
        return {
          post: function postLink(scope) {
            scope.lookupModel = [{
              'key': 'Call',
              'description': 'Call someone'
            }, {
              'key': 'Email',
              'description': 'Email to someone'
            }];
          }
        };
      }
    };
  })

html

<simple-dropdown ng-model="value" unselected-text="Please select.."></simple-dropdown>

我希望$ scope.value =''映射到选项value =“”,请选择,但实际行为是angularjs添加了空的选项value =“?”选择。

完整示例:https://plnkr.co/edit/8dU6lFBEt0VL5IFW5Nfc?p=preview

0 个答案:

没有答案