如何使用AngularJs动态添加html内容
我想使用如何使用AngularJs动态添加html内容,angularjs,Angularjs,我想使用angularJs动态添加HTML内容,但出现以下错误: "$compile is not defined" 原因可能是什么 代码 角度.module('elnApp') .controller('ProgramtableCtrl',函数($scope,$location,$filter,ngTableParams, 可编程表服务){ for(var i=0;i如果您只想添加html内容ng bindHtmlUnsafe就可以了 在HTML中 <div class="circl
angularJs
动态添加HTML内容,但出现以下错误:
"$compile is not defined"
原因可能是什么
代码
角度.module('elnApp')
.controller('ProgramtableCtrl',函数($scope,$location,$filter,ngTableParams,
可编程表服务){
for(var i=0;i如果您只想添加html内容ng bindHtmlUnsafe
就可以了
在HTML中
<div class="circle_dynamic" ng-bindHtmlUnsafe={{expression}}></div>
内部控制器
$scope.expression="<i ng-class='circle_class' style='position: absolute;'></i>"
$scope.expression=“”
请参阅angularjs中的文档,作为最佳实践,您应该使用DOM操作指令
为什么需要编译它?这里不需要调用$compile
注意:我认为硬编码索引$scope.users[0].projects.length
在逻辑上不正确,您确定要这样做吗
您的代码中的这些行非常混乱。如果您告诉用户的数据结构是什么(即用户、项目和结果之间的关系)以及您想要实现什么,您将更容易得到答案
for(var i=0; i<=$scope.users[0].projects.length; i++){
for(var j=0; j<$scope.users[0].projects[i].results.length; j++){
发生“$compile未定义”,因为您忘记将其注入控制器
使用$compile动态添加HTML内容是可以的。但不要在控制器中执行。在指令中执行。这段代码在哪里?在指令中?在控制器中?向我们展示如何初始化它。这在控制器中。为什么需要调用$compile?即使这样做,也应该在指令中执行,而不是在控制器中。我打赌你有很强的jQ您的背景如何?我建议您阅读官方教程和文档,因为您所做的是违反Angular的约定的-这将使您的开发变得困难和令人沮丧。好的,谢谢您的建议,您不应该尝试在控制器中修改DOM。什么是I,j?令人困惑的是您正在迭代用户并显示仅第一个用户的项目结果。如果确实需要,请定义类似于var projectOwner=$scope.users[0]
的内容,并使用它以使其清晰。如果每个用户的每个项目的结果为一(非零),则此代码将显示每个结果的图标。如果结果为0,则不显示图标。
for(var i=0; i<=$scope.users[0].projects.length; i++){
for(var j=0; j<$scope.users[0].projects[i].results.length; j++){
<td ng-repeat="user in users[0].yds"
data-title="'Timeline'"
sortable="timeline"
style="text-align: center" >
<div ng-repeat="project in user.projects">
<div ng-repeat="result in project.results"
ng-show="result">
<i ng-class='circle_class' style='position: absolute;'></i>
</div>
</div>
</td>