javascript - Angular 动态添加指令

标签 javascript angularjs slimscroll

我想在我的网页中动态使用 angular-slimscroll。该指令看起来像这样:

<div id="scroll" slimscroll="{slimscrollOption: value}">
    Scroll Content
</div>

如何动态地将 slimscroll="{slimscrollOption: value}" 添加到 #scroll div 中并使其与 angular-slimscroll 一起运行?

最佳答案

您可以创建一个指令,类似这样的东西:

JS

angular.module('myApp',[])
.controller('MyCtrl', function ($scope) {})
.directive('myScroll', ['$compile', function($compile) {
    return {
        scope: true,
        link: function(scope, element, attrs) {

            element.attr('slimscroll', '{slimscrollOption: value}'); 
            element.removeAttr('my-scroll'); 
            $compile(element)(scope);

        }
    };
}]);

HTML

<div id="scroll" my-scroll>
    Scroll Content
</div>

关键是你需要再次 $compile 元素来动态添加 angular-slimscroll。并删除属性“my-scroll”以避免编译时无限循环。

您也可以在这里看到我的答案(我认为这与您的情况相同):How to add toggling of the disabled state of an input via double click from inside a directive?

关于javascript - Angular 动态添加指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29178418/

相关文章:

javascript - SlimScroll JQuery 插件中 scrollto 的问题

javascript - slimScroll destroy 不会取消绑定(bind)滚动事件

javascript - 将 javascript 应用到 html 以获取数千个文档的最快方法

javascript - Angularjs:在指令中附加一个点击事件

javascript - angularjs 和 bootstrap javascript

javascript - 如何使用 Angular 路线在部分 html 文件中使用 ng-repeat

javascript - Nodejs 服务器应用程序的记录器

javascript - Mootools:将 HTML 文本添加到元素

javascript - 使用数组构造函数创建的嵌套数组 - 引用问题