Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在angularjs中将html项插入现有模板html的方法是什么?_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 在angularjs中将html项插入现有模板html的方法是什么?

Javascript 在angularjs中将html项插入现有模板html的方法是什么?,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,在angularjs中将html项插入现有模板html的简单方法是什么? 例如,有一个用PHP生成的模板: <div id="block"> <!-- Insert here template from Angularjs--> <div class="item"></div> <div class="item"></div> </div> 我可以像这样使用Jquery: $('#block').prepend

在angularjs中将html项插入现有模板html的简单方法是什么? 例如,有一个用PHP生成的模板:

<div id="block">
<!-- Insert here template from Angularjs-->
<div class="item"></div>
<div class="item"></div>
</div>
我可以像这样使用Jquery:

$('#block').prepend('<div class="item"></div>');

如何在Angularjs中实现这一点?

您可以使用jquery添加HTML,但首先需要使用

var compiledHTML = $compile(html)($scope);
然后将其传递给jquery的方法

$('#block').prepend(compiledHTML);

但正如@cerad明确提到的,这不是最好的方法。

您应该使用angular的数据绑定,您也可以将is视为模板引擎

例如:

您的html代码如下所示

<ul>
  <li ng-repeat="msg in allMsgs">{{msg}}</li>
</ul>
app.controller($scope){
   $scope.allMsgs = [];

   // i dont know socket.io well, so this part may not work :)
   // and it's better to separate it to a service and use $rootScope.$apply()
   soceket.on('msg',function(msg){
     $scope.$apply(function(){
        $scope.allMsgs.push(msg);
     });
   });
}
注意:您需要使用$apply,以便在保存数据时使数据绑定工作 由angular无法控制的事件更改

一些有用的链接


你的意思是这样的吗?我的意思是当我从socket.io获取数据时,我想在exists.element中插入数据。element有prepend和append方法,就像jquery一样。它们是否应该被使用是值得怀疑的,但它们确实可以被使用。但我想通过Jquery更改变量angulars,可以吗?