如何在angular指令的link函数中传递值

时间:2016-05-24 10:05:30

标签: javascript angularjs angularjs-directive

亲爱的我有指令

function percentview($compile) {
    var linker = function (scope, element) {

        var controldef = "";
        switch (scope.percentage.state) {
            case 'stable':
                controldef = ' <span class="text-yellow font-17">' +
                    '  <i>0%</i>' +
                    '<i class="fa "></i> </span>';



                break;
            case 'up':
                controldef = ' <span class="text-issue font-17">' +
                   '  <i>+ {{percentage.percentage}}%</i>' +
                   '<i class="fa fa-arrow-up"></i> </span>';
                break;
            case 'down':
                controldef = ' <span class="text-green font-17">' +
                  '  <i- {{percentage.percentage}}%</i>' +
                  '<i class="fa fa-arrow-down"></i> </span>';
                break;
            default:
                break;
        }
        element.html($compile(controldef));
    };
    var directive = {
        restrict: 'E',

        scope: {
            percentage: '='
        },
        link: linker

    }

    return directive;
}

percentview.$inject = ['$compile'];
angular
 .module('app')
 .directive('percentview', percentview);

HTML://

<percentview percentage="percentiles[0]"></percentview>

但是当我运行代码时,我收到错误 scope.percentage未定义我在链接函数中记录了范围对象,并且可以看到所有值都称为百分比的属性(对象)。

如何在链接函数中传递对象。或者此代码有什么问题。

2 个答案:

答案 0 :(得分:1)

将变量传递给链接函数对我来说似乎没问题。

如果你传递一个文字它可以正常工作,你可以在下面的jbin中看到,也许你有范围问题和百分位数[0]它在该范围内不可用

http://jsbin.com/zodeva/edit?html,js,console

答案 1 :(得分:-1)

你能试试element.percentage.state吗? 我可以看到百分比是元素的一个属性。