我正在做的事情非常精简,可以解决问题。
我有一个简单的directive
。每当您单击一个元素时,它都会添加另一个元素。但是,需要先对其进行编译才能正确呈现。
我的研究使我走向了$compile
。但是所有示例都使用了一个复杂的结构,我真的不知道如何在这里应用它。
小提琴在这里:http :
//jsfiddle.net/paulocoelho/fBjbP/1/
JS在这里:
var module = angular.module('testApp', [])
.directive('test', function () {
return {
restrict: 'E',
template: '<p>{{text}}</p>',
scope: {
text: '@text'
},
link:function(scope,element){
$( element ).click(function(){
// TODO: This does not do what it's supposed to :(
$(this).parent().append("<test text='n'></test>");
});
}
};
});
Josh David Miller的解决方案:http :
//jsfiddle.net/paulocoelho/fBjbP/2/
那里有很多毫无意义的jQuery,但是$ compile服务在这种情况下实际上 非常简单 :
.directive( 'test', function ( $compile ) {
return {
restrict: 'E',
scope: { text: '@' },
template: '<p ng-click="add()">{{text}}</p>',
controller: function ( $scope, $element ) {
$scope.add = function () {
var el = $compile( "<test text='n'></test>" )( $scope );
$element.parent().append( el );
};
}
};
});
您会注意到,我也重构了您的指令,以便遵循一些最佳实践。如果您有任何疑问,请告诉我。
问题内容: 我正在尝试在ng-repeat中动态添加不同的指令,但是输出没有被解释为指令。 我在这里添加了一个简单的示例:http : //plnkr.co/edit/6pREpoqvmcnJJWzhZZKq 控制器: 指示: HTML: 如何通过ng-repeat 使角度拾取在中指定的指令? 问题答案: 我知道这是一个老问题,但是google将我带到了这里,但我不喜欢这里的答案。所以我创建了这个
问题内容: 我正在尝试编写一个向指令添加验证属性的角度指令,但是它似乎没有用。这是我的演示。您将注意到,如果删除第二个输入框中的文本,则“有效”保持为true,但是如果删除第一个输入框中的文本,则为false。 http://plnkr.co/edit/Rr81dGOd2Zvio1cLYW8D?p=preview 这是我的指令: 我猜我只是缺少一些简单的东西。 问题答案: 在表单的编译阶段将读取所
问题内容: 我使用指令创建联系表格。最初我创建用于显示客户表单的customerForm指令。在这种形式下,我有一个按钮,当我们单击添加按钮时,称为getData函数,该函数内部使用newDirective显示ul列表。为此,我使用$ compile api编译html代码。很好,当我们单击“删除”按钮时,它也显示列表值和“删除”按钮,它称为scope.remove()函数。但是它只能删除一个。之
问题内容: 看来这个问题已经被问过几次了,但是没有正确的答案。 我的情况:我正在使用ajax(出于某种原因不使用角度路由模板)将模板(带有html和脚本)初始化为div。 index.html(主要) template.html(模板) 当我单击按钮时,它将文件加载到容器中,但是出现错误 错误:[ ng:areq ]参数’TempCtrl’不是函数,未定义 尽管已将其添加到应用控制器中。 我如何动
问题内容: 我正在尝试构建一个指令,该 指令 负责在其声明的元素上 添加更多指令 。例如,我要建立一个指令,需要增加的照顾,和。 如果我尝试添加这些属性然后使用,则显然会生成一个无限循环,因此我正在检查是否已添加所需的属性: 当然,如果我没有该元素,则将设置属性,但不会引导该指令。 这种方法正确还是我做错了?有没有更好的方法来实现相同的行为? UDPATE :鉴于这是实现此目标的唯一方法,是否有一
问题内容: 如何在Android中动态添加按钮? 问题答案: