Javascript 在angularjs中绑定HTML属性

Javascript 在angularjs中绑定HTML属性,javascript,angularjs,ng-bind-html,Javascript,Angularjs,Ng Bind Html,我有以下代码: <span data-icon="{{table.addIcon || '&#xe603;'}}"></span> 而不是创建元素 <span data-icon="&#xe070;"></span> 它是这样使用的: <span change-icon icon="{{table.addIcon || '&#xe603;'}}"></span> 我创建了一个示例来尝试您描述

我有以下代码:

<span data-icon="{{table.addIcon || '&#xe603;'}}"></span>
而不是创建元素

<span data-icon="&#xe070;"></span> 
它是这样使用的:

<span change-icon icon="{{table.addIcon || '&#xe603;'}}"></span>

我创建了一个示例来尝试您描述的问题,但我可能遗漏了一些东西

我怀疑您看到的是
&而不是
&
,因为视图是服务器上html编码的

无论哪种方式,使用javascript都相当容易。考虑下面的例子:

m.directive('icon', function(){
    var div = document.createElement('div');

    return {
        scope: {
            icon:'='
        },
        link: function($scope,$element,$attrs){            
            var originalIcon;
            $scope.decodedIcon = $scope.icon;
            do {
                originalIcon = $scope.decodedIcon;
                div.innerHTML = originalIcon;
                $scope.decodedIcon = div.firstChild.nodeValue;
            } while (originalIcon != $scope.decodedIcon); 
            console.log('data-icon', $scope.decodedIcon);
            $attrs.$set('data-icon', $scope.decodedIcon);
        }
    };
});

您可以使用它,希望它能帮助您解决问题。

非常感谢您提供的信息。实际上,如果您检查第一个JSFIDLE,您将看到它已编码,但第二个JSFIDLE正是我所需要的。我试试看。谢谢
.directive("changeIcon", function() {
    var d = document.createElement("div");
    return {
        restrict: "A",
        link: function($scope, $ele, $attrs) {
            log($attrs);
            var originalIcon;
            $scope.decodedIcon = $attrs.icon;
            do {
                originalIcon = $scope.decodedIcon;
                d.innerHTML = originalIcon;
                $scope.decodedIcon = d.firstChild.nodeValue;
            } while (originalIcon != $scope.decodedIcon);
            $attrs.$set('data-icon', $scope.decodedIcon);
        }
    }
})
<span change-icon icon="{{table.addIcon || '&#xe603;'}}"></span>
m.directive('icon', function(){
    var div = document.createElement('div');

    return {
        scope: {
            icon:'='
        },
        link: function($scope,$element,$attrs){            
            var originalIcon;
            $scope.decodedIcon = $scope.icon;
            do {
                originalIcon = $scope.decodedIcon;
                div.innerHTML = originalIcon;
                $scope.decodedIcon = div.firstChild.nodeValue;
            } while (originalIcon != $scope.decodedIcon); 
            console.log('data-icon', $scope.decodedIcon);
            $attrs.$set('data-icon', $scope.decodedIcon);
        }
    };
});