twitter-bootstrap - 如何在 AngularJS 中使用 Bootstrap 多选下拉菜单

标签 twitter-bootstrap angularjs angularjs-directive angular-ui

我想使用 Bootstrap Multiselect Dropdown http://davidstutz.github.io/bootstrap-multiselect/在 AngularJS 中。我听说有必要将其移至指令。但我认为这很复杂,不知道我必须做什么。如果你有经验,请指导我!谢了。

最佳答案

这是我在项目中使用的指令。它适用于 Chrome 和 Firefox。您可以根据自己的需要更改选项。

angular.module('yourApp')
.directive('yourDirective', function () {
    return {
        link: function (scope, element, attrs) {
            element.multiselect({
                buttonClass: 'btn',
                buttonWidth: 'auto',
                buttonContainer: '<div class="btn-group" />',
                maxHeight: false,
                buttonText: function(options) {
                    if (options.length == 0) {
                      return 'None selected <b class="caret"></b>';
                    }
                    else if (options.length > 3) {
                      return options.length + ' selected  <b class="caret"></b>';
                    }
                    else {
                      var selected = '';
                      options.each(function() {
                        selected += $(this).text() + ', ';
                      });
                      return selected.substr(0, selected.length -2) + ' <b class="caret"></b>';
                    }
                }
            });

            // Watch for any changes to the length of our select element
            scope.$watch(function () {
                return element[0].length;
            }, function () {
                element.multiselect('rebuild');
            });

            // Watch for any changes from outside the directive and refresh
            scope.$watch(attrs.ngModel, function () {
                element.multiselect('refresh');
            });

        }

    };
});

更新适用于 AngularJS v1.3.15 和 bootstrap-multiselect v0.9.6 的指令的两个片段:JavaScript , CoffeeScript

关于twitter-bootstrap - 如何在 AngularJS 中使用 Bootstrap 多选下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16954605/

相关文章:

加载 Ng-Repeat 元素后运行的 jQuery Swiper 脚本

javascript - AngularJS 中的全局 "App" Controller

javascript - 如何将 ngOptions 与包含 HTML 实体的字符串一起使用?

html - Bootstrap - Img 中的徽章保持响应

javascript - 如何禁用浏览器功能和快捷键进行全屏在线考试?

javascript - angular 2 package.json 文件的说明

javascript - 如果满足条件,如何禁用 Angular Controller 中的按钮?

html - 页脚不是从 css 继承类而是接受另一个?

html - Css 中心 ul li inside div

javascript - AngularJS - 在 ng-repeat 中过滤未定义的属性?