Javascript AngularJS-将字符串从模型注入HTML';s标签名
是否可以使用angular将字符串插入html的标记名中 大概是这样的:Javascript AngularJS-将字符串从模型注入HTML';s标签名,javascript,html,angularjs,Javascript,Html,Angularjs,是否可以使用angular将字符串插入html的标记名中 大概是这样的: <div ng-repeat="type in types"> <bettype-{{type.id}}></bettype-{{type.id}}> </div> 我需要的输出是: <bettype-1></bettype-1> <bettype-2></bettype-2> 我还使
<div ng-repeat="type in types">
<bettype-{{type.id}}></bettype-{{type.id}}>
</div>
我需要的输出是:
<bettype-1></bettype-1>
<bettype-2></bettype-2>
我还使用了polymer(通过这种方式我创建了自定义html标记)。我认为最好的解决方案是创建一个创建自定义元素的指令,例如:
.directive('bettype', function($compile) {
return {
restrict: 'E',
compile: function($element, $attr) {
return function($scope, $element, $attr) {
// Create new element here with $attr.number
var number = $attr.number,
element = angular.element('<bettype-'+number+'></bettype-'+number+'>');
// Replace newly created element
$element.replaceWith(element);
$compile($element)($scope);
}
}
}
});
指令('bettype',函数($compile){
返回{
限制:'E',
编译:函数($element,$attr){
返回函数($scope、$element、$attr){
//在此处使用$attr.number创建新元素
变量编号=$attr.number,
元素=角度。元素(“”);
//替换新创建的元素
$element.replacetwith(element);
$compile($element)($scope);
}
}
}
});
不确定这是否有效,但可能这就是方法
注意:我认为\n使用虚线分隔的元素(如
bettype-1
)不是一个好主意。您希望该标记用作角度指令,还是仅由其他引擎渲染和解释?如果是前者,则需要首先对内容调用$compile,然后查找要借用的代码段。