我对Angular比较新,我很难将我的指令输出呈现为HTML(副文字字符串)。
HTML中的指令: <div odometer-display="{{bigNumber}}"></div>
指令:
app.directive("odometerDisplay",function($compile){//distribute bigNumber digits into individual table cells
var linkFunction = function(scope, element, attributes){
scope.bigNum = attributes["odometerDisplay"];
var oTbl="<table><tr>";//start the table
for(var a=0;a<scope.bigNum.length;a++){//build table cells with digits as content
oTbl+= scope.bigNum[a]!== "" ? "<td class=\"oCell\">"+scope.bigNum[a]+"</td>":'';
}
oTbl+="</tr></table>";//finish the table
var markUp=$compile(scope)(oTbl);//compile
element.append(markUp);//append to DOM
}
return {
restrict:"A",
template:'<div>{{oTbl}}</div>',
link:linkFunction
}
});
基本上,linkFunction使用scope.bigNumber并将每个数字写入表格单元格(在变量 oTbl 中定义)。 bigNumber可用于&#39; $ scope&#39;并且在指令的范围内&#39; (这不是问题)。
输出(oTbl): <table><tr><td class="oCell">4</td><td class="oCell">8</td><td class="oCell">2</td><td class="oCell">7</td><td class="oCell">2</td></tr></table>
输出就是应该的(一个表格,每个单元格托管一个bigNumber的数字 - 非常简单)。
问题在于它不会呈现为HTML - 它只是呈现定义表格和单元格的文字字符串(即使在尝试&#39; $ compile&#39;&$ 39; $ append&#39之后;)
这仅仅是我在获取HTML指令时所做的最后一次尝试 - 我尝试了无数的角度和方法 - 并得出结论有关于指令I&#的事情39;我根本就失踪了。