这是我的柱塞:
http://plnkr.co/edit/oIei6gAU1Bxpo8VUIswt
单击该按钮后,应在“ Hello World!”之前插入以下内容。跨度:
<script type="text/ng-template" id="tempTest">
<div>
<span>Properly Inserted</span>
</div>
</script>
减去脚本标签,当然。
我是通过动态插入以下div来实现的:
<div ng-include="tempTest"></div>
然后进行编译。但是,如果您查看日志,则编译后剩下的唯一内容是:
<!-- ngInclude: tempTest -->
这里发生了什么?为什么我的插入内容无法正确编译?逻辑如下:
$scope.insert = function(){
// Create elements //
var container = angular.element('<div id="compiled-container"></div>');
var element = angular.element('<div ng-include="tempTest"></div>');
//Insert parent Container
$('#greeting').before(container);
// insert the element
$animate.enter(element, container);
// test insertion
console.log("Before Compile: " +container.html() )
$compile(element);
//look again after compile
console.log("After Compile: " +container.html() )
};
在 快速 的答案可能是:
<div ng-include="'tempTest'"></div>
可能您只是忘记了引用模板的单引号。
在 漫长 的答案:
不建议您访问控制器内部的DOM,因为代码会被$scope.$apply()
调用淹没,您会遇到麻烦。考虑使用指令实现此功能。我试图从这里的代码创建起点
http://plnkr.co/UWUCqWuB9d1dn6Zwy3J3
var app = angular.module('plunker', ['ngAnimate']);
app.directive('greeting', function($compile){
return {
restrict: 'E',
scope: {
name: '='
},
template: '<div>'+
' <span>Hello {{name}}!</span>'+
' <button ng-click="insert()">test</button>'+
'</div>',
link: function(scope, element, attrs) {
scope.insert = function() {
var container = angular.element('<div ng-include="\'tempTest.html\'"></div>');
element.before($compile(container)(scope));
}
}
}
})
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
});
<greeting name="name"></greeting>
模板元素已插入Hello World!每次单击按钮时为textnode。
旁注 您甚至不需要,scope{ name: '='}
因为该指令将继承其周围的作用域,但是它是将控制器变量显式传递(实际绑定)控制器变量的更简洁的方法。
问题内容: AngularJS的两个绑定不适用于div。我希望我的div是可编辑的,但是没有发生。有人可以建议出什么问题吗?相同的绑定在文本框中也可以正常工作。这是我的代码: 问题答案: 请尝试此操作,它可能会有所帮助 https://github.com/angular/angular.js/issues/528 这是一个3岁的未解决问题,很多人希望解决。它被标记为和,而不是错误。鉴于Angul
问题内容: 适用于1.3.4版。在以下代码段中,ng-change事件不起作用。 依赖项:Bootstrap版本3.3.0 以下代码适用于1.2.27版 javascript html 以下是plunkr(用于简单版本):http ://plnkr.co/edit/yU9unxI8F6u2ToQzlUV2 问题答案: 在处理Angular时,您不应依赖Bootstrap javascript。Bo
问题内容: 我正在使用bootstrap.js和angular js,我的代码如下- 这里用于禁用和启用按钮。 在ajax加载完成之前生成的输出HTML 并且在ajax加载完成之后 并且按钮仍然被禁用。我不确定为什么会这样,我在这里看到的几个问题仅是回答了这一问题。 提前致谢。 问题答案: 如果使用的表达式必须使用返回真实值的表达式。表达式的一个示例是。而是输出一个表达式。因此,改用。 ng禁用的
问题内容: 我已经创建了一个表,并且正在使用http来加载表中的数据。因此,每次单击时,我的表数据都在变化,但是在表中看不到更新的数据。我创建了一个样本Plunker供参考。在我的项目中,当我单击“重新加载新数据”时,表中的数据已更改,但是在2-3次单击后,它没有更改。有人知道,如何解决它。 问题答案: ngTable指令有问题。仅在更改时更新。看看这个pl。我将$ scope [‘tablePa
问题内容: 我试图使用 AngularJS 提供的和函数显示/隐藏一些HTML 。 **** 根据文档,这些功能的各自用法如下: ngHide – {表达式}-如果表达式为true,则分别显示或隐藏该元素。ngShow – {表达式}-如果表达式为真,则分别显示或隐藏该元素。 这适用于以下用例: 但是,如果我们使用对象中的参数作为表达式,则和被赋予正确的/ 值,但这些值不会被视为布尔值,因此始终返
我是Angular的新手,我正在尝试获取用户使用ng模型选择的单选按钮的值。但我在“选定联系人”中没有得到任何输出。 这是我的HTML 以下是我的主要内容.js 我在这里做错了什么?搞不清楚!!!