向angular选择的容器添加自定义类

Add custom classes to angular chosen container

本文关键字:添加 自定义 angular 选择      更新时间:2023-09-26

CODE: http://plnkr.co/edit/H2hmEukfjaPL1T4W298O?p=preview

<!DOCTYPE html>
<html ng-app="plunker">
  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <link data-require="chosen@*" data-semver="1.0.0" rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/chosen/1.0/chosen.min.css" />
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="jquery@*" data-semver="2.1.1" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script data-require="angular.js@1.2.x" src="https://code.angularjs.org/1.2.20/angular.js" data-semver="1.2.20"></script>
    <script src="chosen.jquery.js"></script>
    <script src="chosen.js"></script>
    <script src="app.js"></script>
  </head>
  <body ng-controller="MainCtrl">
    <p>Hello {{name}}!</p>
    <select chosen class="red" ng-model="bar">
      <option>Hi</option>
      <option>This is fun</option>
      <option>I like Chosen so much</option>
      <option>I also like bunny rabbits</option>
      <option value=""></option>
    </select>
  </body>
</html>

JS

var app = angular.module('plunker', ['localytics.directives']);
app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
});

您可以看到,我尝试将类red添加到由angular-chosen创建的div中,并与其他类chosen-container chosen-container-single一起添加。我不想手动更改这些类。

确保添加额外类的正确方法是什么?

谢谢

看起来chosen.jquery.js的第153行有一个默认为falseinherit_select_classes选项。

chosen.js中指令的第39行查看optionschosen属性:

options = scope.$eval(attr.chosen) || {};

让你的select标记:

<select chosen="{inherit_select_classes:true}" class="red" ng-model="bar">

导致生成以下内容:

<div class="chosen-container chosen-container-single red ng-pristine ng-valid localytics-chosen" >

(省略与此问题无关的额外属性)