Angularjs 角度指令-第三个参数始终为零

Angularjs 角度指令-第三个参数始终为零,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我正在用等效的角度指令替换MVC HtmlHelper。助手根据两个参数渲染字体图标。这在一定程度上起作用,但第三个参数始终为零 标记: <subscription-product-icon productid="p.ProductID" productname="p.ProductName" additionalclass="fa-lg"></subscription-product-icon> 指令: (function () { 'use st

我正在用等效的角度指令替换MVC HtmlHelper。助手根据两个参数渲染字体图标。这在一定程度上起作用,但第三个参数始终为零

标记:

<subscription-product-icon productid="p.ProductID" productname="p.ProductName" additionalclass="fa-lg"></subscription-product-icon>

指令:

    (function () {
    'use strict';

    angular.module('app', [])
        .directive('subscriptionProductIcon', function () {

            var getTemplate = function (productid, productname, additionalclass) {
                var iconClass = additionalclass;
                debugger
                switch (productid) {
                    case 1:
                        iconClass += " fa-circle-o-notch free-subscription";
                        break;
                    case 2:
                        iconClass += " fa-circle-o-notch standard-subscription";
                        break;
                    case 3:
                        iconClass += " fa-calendar live-availability";
                        break;
                    default:
                        iconClass += " fa-question text-red";
                        break;
                }

                return "<i class='fa " + iconClass + "' title='" + productname + "' aria-hidden='True'></i>";
            };

            return {
                restrict: "E",
                scope: {
                    productid: "=",
                    productname: "=",
                    additionalclass: "="
                },
                link: function (scope, element, attrs) {
                    element.html(getTemplate(scope.productid, scope.productname, scope.additionalclass));
                    console.log("test", scope.productid);
                }
            };

        });
})();
(函数(){
"严格使用",;
角度.module('app',[])
.directive('subscriptionProductIcon',函数(){
var getTemplate=函数(productid、productname、additionalclass){
var iconClass=附加类;
调试器
交换机(productid){
案例1:
iconClass+=“fa-circle-o-notch免费订阅”;
打破
案例2:
iconClass+=“fa-circle-o-notch标准订阅”;
打破
案例3:
iconClass+=“fa日历实时可用性”;
打破
违约:
iconClass+=“fa问题文本红色”;
打破
}
返回“”;
};
返回{
限制:“E”,
范围:{
productid:“=”,
产品名称:“=”,
附加类:“=”
},
链接:函数(范围、元素、属性){
html(getTemplate(scope.productid、scope.productname、scope.additionalclass));
console.log(“test”,scope.productid);
}
};
});
})();
虽然前两个参数工作正常,但第三个参数

附加类

总是零。有人能解释为什么吗


这是我第一次使用Angular指令,在使用Angular btw的第一天,所以我不是专家

这里的问题是,您在指令中将additionalClass attr定义为双向绑定
“=”
,然后尝试向其传递常量字符串而不是变量

修理-

  • 将附加类属性的
    “=”
    更改为
    “@”

  • 将一个变量传递给additionalClass attr,与其他两个相同

  • 检查此项以查看它的运行情况

    希望这有帮助