被屏蔽的元素克隆可以'达不到范围
Transcluded element clone can't reach scope
我创建了这个transclude:'element'Atribute指令:
<div repeat="5" ng-click="sayNumber(number)">
This is number {{number}}
</div>
app.directive('repeat', function () {
return {
restrict: 'A',
transclude: 'element',
link: function (scope,element,attrs,ctrl,transclude) {
var repeatNum=parseInt(attrs.repeat);
for(var i=0;i<repeatNum;i++){
var childScope = scope.$new();
childScope.number = i;
transclude(childScope, function(clone,cloneScope) {
element.parent().append(clone);
});
}
}
}
});
Transclude元素按预期呈现,但after-看不到父作用域,并且不能调用其任何函数。
这是jsfiddle:http://jsfiddle.net/3anj78sz/10/
它还包含transclude:true Element指令,它按预期工作,以及标准ng重复,我试图用transclude:Element指令实现这一功能。
我做错了什么?
好的,经过一段时间的挖掘,我发现这个问题是因为在同一个元素上使用了多个角度指令,在这种情况下,都是"repeat"ang"ng-click"。
在一个指令不依赖于另一个指令的情况下,这不会造成任何麻烦,但如果是这样,它可能会(也可能不会)导致这样的情况,即angular将在它所依赖的指令之前处理依赖的指令。当指令具有相同的优先级,并按字母顺序进行角度处理时,就会发生这种情况。
因此,为了让问题中的例子发挥作用,我所要做的就是将"repeat"指令的优先级设置为高于"ng-click"指令。这是正确指令的定义对象:
{
restrict: 'A',
transclude: 'element',
priority: 1000,
link: ...
}
相关文章:
- 气质的“nestRemoting()”有时可以'找不到关系
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- 找不到模块捆绑包
- for循环中的javascript if语句找不到==
- 为什么我在Internet Explorer上看不到html元素
- 自定义运行时Can'在谷歌应用引擎中看不到我的自定义日志
- 为什么JavaScript可以'找不到给定的InnerHTML并返回Cannot set property
- ajax请求成功,但可以'我看不到我的数据
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- [Vue warn]:找不到元素
- 即 11 + angularjs 找不到 angular.element(“#idName”) 的范围
- 多个 xmlhttp 请求会导致除最后一个实例之外的所有实例的 readystate 都达不到 4
- 传递到指令而不将其添加到范围
- 不从服务获取数据$http从服务获取到范围的数据
- 类型错误:在对象 [对象对象] 中找不到函数范围到对象.(第 4 行,文件“代码”)
- 第二个角度$http请求没有'达不到目的地
- 我可以确定查询是否在指定范围内找不到任何具有值的子节点
- 找不到范围-谷歌电子表格
- 被屏蔽的元素克隆可以'达不到范围