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