对象在angular模板重新编译时消失
objects disappear on angular template recompilation
查看此视频:http://jsfiddle.net/z9XK3/6/
<div ng-app="miniapp">
<div ng-controller="Ctrl">
<span ng-bind-html-unsafe="variable"></span>
<span ng-bind-html-unsafe="variableB"></span>
<span class="clone">Clone me Clone me</span>
</div>
</div>
<div class="destination"></div>
var $scope;
var app = angular.module('miniapp', []);
function Ctrl($scope) {
$scope.variable = $('<span>100</span>');
$scope.variableB = 'String';
}
app.directive('clone', ['$compile', function($compile) {
return {
restrict: 'C',
link: function(scope, element, attrs) {
element.bind('click', function(){
var newTemplate = '<span ng-bind-html-unsafe="variable"></span><span ng-bind-html-unsafe="variableB"></span> ';
var compiledOutput = $compile(newTemplate)(scope);
scope.$apply();
compiledOutput.prependTo($('.destination'));
});
}
};
}]);
点击"克隆我克隆我链接"
注意,在原始模板中,<span>100</span>
消失了,因为它是一个对象,而'String'字符串仍然会出现。
为什么会发生这种情况?此外,我怎样才能防止这种情况,这样一旦我点击"克隆我克隆我"链接,原来的<span>100</span>
将不会消失?
<div ng-controller="Ctrl"></div>
来解决这个问题。然而,在实际问题中,我所面临的添加ng-controllerdiv将无法解决问题,所以请为我提供一些新的见解)
我不知道为什么会发生这种情况,但为什么你有<span>100</span>
与$();
包装?如果你删除了$();
,点击"克隆我克隆我"后"100"仍然存在,所以如果这不是必要的代码,你的问题就解决了。
function Ctrl($scope) {
$scope.variable = '<span>100</span>';
$scope.variableB = 'String';
}
http://jsfiddle.net/z9XK3/8/相关文章:
- facebook”;添加评论“;popup获胜'不要消失
- 为什么js事件消失了
- JS文件的路径正在消失
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- AngularJS指令出错-无法读取属性'编译'的未定义
- Morris.js折线图x轴标签在调整大小后消失
- 如何使用ViewCompiler手动编译DOM的一部分
- 预编译的车把模板使文件大小加倍
- Mocha react本地路由器编译错误
- JavaScript下拉菜单-部件在Mac上消失
- 将display属性更改为visible flicks,然后再次消失
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- TinyMCE实例在切换角度路由选项时会消失
- 将phonegap图像发布到php/mysql-图像字段从发布请求中消失
- Jquery UI对话框不会消失
- 在编译阶段后创建新的DOM树,或者继续使用原始修改的DOM
- 如何在Windows中将Javascript文件编译成二进制文件
- 通过单击同一图标使菜单出现和消失
- '单击'事件在Backbone中消失.使用流沙后查看
- 对象在angular模板重新编译时消失