如何使用 AngularJS 创建可排序的手风琴?

2024-03-06

I found 用户界面可排序 https://github.com/angular-ui/ui-sortable并使其能够很好地处理简单的列表等。我的应用程序已经使用了ui引导程序 http://angular-ui.github.io/bootstrap/我想对手风琴元素进行排序。

html 看起来不错:

<div ng:controller="controller">
    <accordion ui:sortable ng:model="list">
        <accordion-group ng:repeat="item in list" class="item">
            <accordion-heading>{{item}}</accordion-heading>
        </accordion-group>
    </accordion>
</div>

然而,虽然这适用于交换为 ul/li 等的手风琴位,但它不适用于手风琴元素。这是不工作的小提琴 http://jsfiddle.net/whippy/bwq82bvs/。拖动动作只会拾取整个手风琴。

这是一个错误还是我做错了什么?


我就遇到过这个麻烦。我已经使用 $decorator 解决了这个问题,这对于编辑第三方库而不触及核心非常有用。确切的代码是:

yourModule.config(['$provide', function ($provide){
    $provide.decorator('accordionDirective', function($delegate) { 
        var directive = $delegate[0];
        directive.replace = true;
        return $delegate;
    });
}]);

该代码的作用是替换 Accordion 指令所包装的模板,因此现在 ng-repeat 是 ui-sortable 指令的直接子级,并且它应该可以工作。

另外,正如@Dylan 所说,我建议使用“处理程序”来防止手风琴在排序时打开。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 AngularJS 创建可排序的手风琴? 的相关文章

随机推荐