javascript - 在其模板中使用 Angular Directive 属性

标签 javascript angularjs angularjs-directive

如何在指令中使用属性的值?我的元素如下所示:

<div class="tooltip-icon" 
  data-my-tooltip="click" 
  data-tooltip-title="foo" 
  data-tooltip-content="test content"></div>

我想在我的指令模板中使用它,如下所示:

mainApp.directive('myTooltip',
    function() {

        // allowed event listeners
        var allowedListeners = ["click"];

        return {
            restrict: 'A',
            template:   '<div class="tooltip-title">...</div>' +
                        '<div class="tooltip-content">' +
                        '...</div>',
            link: function(scope, elm, attrs) {
                if(allowedListeners.indexOf(attrs.myTooltip) != -1){
                    elm.bind(attrs.myTooltip, function(){
                        ...
                    });
                }

            }
        };
    }
);

三点所在的位置应该有代码,但我不知道如何将 attrs 对象(attrs.tooltipTitle 等)的内容获取到该模板中。

最佳答案

您可以拉出属性并将它们放入指令的范围内,如下所示:

angular.module('myApp', []).
directive('myTooltip', function ($log) {
    // allowed event listeners
    var allowedListeners = ["click"];
    return {
        restrict: 'A',
        template:   '<div class="tooltip-title">{{tooltipTitle}}</div>' +
                    '<div class="tooltip-content">' +
                    '{{tooltipContent}}</div>',
        scope: {
            tooltipTitle: '@tooltipTitle',
            tooltipContent: '@tooltipContent'
        },
        link: function (scope, elm, attrs) {
            if (allowedListeners.indexOf(attrs.myTooltip) != -1) {
                elm.bind(attrs.myTooltip, function () {
                    $log.info('clicked');
                });
            }

        }
    };
});

这是 fiddle :http://jsfiddle.net/moderndegree/f3JL3/

关于javascript - 在其模板中使用 Angular Directive 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17345302/

相关文章:

用于验证用户输入正确信息的 Javascript 代码

javascript - 试图通过隐藏字段获取后面代码中的时间偏移值。但我得到空字符串 ("")而不是偏移量

javascript - 为什么这么多 jQuery slider 使用列表而不是 div?

javascript - 向 Angular 指令提供数据(来自文件或数据库)

javascript - Google Chrome 元素仍然是 :hover even when moved away from cursor

javascript - 将 Controller 与指令分开?

javascript - 单选按钮AngularJS的parseInt返回值

javascript - ng-repeat 与动态数组 : view not updated

angularjs - 自定义指令模型在 ng-switch 中不起作用

javascript - 使用指令的表单验证不起作用