Okay, so I've created a directive let's say
<calendar></calendar>
我的期望结果已经成功渲染出来了,现在我的问题是如何在插入到 DOM 后重新渲染它?我不想一直在网页上使用它,我只想在需要时动态添加并渲染它(它是一个模块的一部分)。比如说,理想情况下我希望它像这样出现:
$("body").append("<calendar></calendar>")
我该如何使用AngularJS实现这个功能?
Okay, so I've created a directive let's say
<calendar></calendar>
我的期望结果已经成功渲染出来了,现在我的问题是如何在插入到 DOM 后重新渲染它?我不想一直在网页上使用它,我只想在需要时动态添加并渲染它(它是一个模块的一部分)。比如说,理想情况下我希望它像这样出现:
$("body").append("<calendar></calendar>")
$document
和$compile
依赖项,使其更易于理解。var template = '<calender></calender>',
body = $document.find('body');
body.append($compile(template)(scope));
可以通过angular元素实现:
angular.element('body').append($compile("<calendar></calendar>")($scope));
$compile
。 - Pankaj Parkarlink: function(){}
在哪里?从那里你可以编译你的元素。 - Pankaj Parkar操作顺序如下:
Create DOM element or angular.element
object:
var calendar = angular.element('<calendar></calendar>'),
Pass it to $compile
service. At this stage you need to provide necessary scope object:
$compile(calendar)(scope);
Append calendar
element to document:
angular.element('body').append(calendar);
var calendar = angular.element('<calendar></calendar>');
$compile(calendar)(scope);
angular.element('body').append(calendar);
var el = $compile( "<calendar></calendar>" )( $scope );
angular.element('body').append( el );