AngularJS指令:在`pre`函数

时间:2016-01-27 18:16:16

标签: javascript jquery angularjs ng-grid

我一直在尝试追踪ngGridv2.0.14中我gridID类别元素未设置“ngGrid”类的错误,即使动态样式表正在附在我的文件标题上,我发现了一些奇怪的东西......

此错误导致列彼此“显示”......

ng-grid-2.0.14.debug.js中,有一个名为directive的{​​{1}}(当然!)。该指令使用建议的"directive definition object" form。他们通过定义ngGrid来定义inherited scope,并声明scope:true函数,该函数返回包含函数compile的对象结构不会声明函数pre

奇怪的是在这个post函数中有一个return语句,我找不到有关pre函数中的return语句的文档。该函数最终出现在Angular的“pre”中,我认为这可能是processQueue(我正在跟踪调用堆栈来找到它,所以我不确定)。在Deffered.$$state.pending循环期间,angular将这些数组索引作为函数进行测试并调用它们。

正在调用的$digest函数(可以在ngGrid找到)做了很多,其中大部分工作正常,例如ng-grid-2.0.14.debug.js line 3318清理逻辑,{{ 1}} $destroy,事件监听器建立,以及最重要,在我们的指令$complie($scope)中添加两个非常具体的类,它们似乎仍在“范围内” “。这是失败的部分。

他们正在通过以下方式向gridTemplate添加一个类

iElement

有时候这种方法有效,有时这不会......

有时元素会选择“iElement”类(例如:iElement.addClass("ngGrid").addClass(grid.gridId.toString()); ),有时它不会,即使我已经完成了该功能并观察了添加了课程被执行。

进一步调查!:如果我在我的“ngGrid元素”(通过属性实例化ng-scope ngGrid ng[0-9]{13}指令的元素)的父节点上放置ng-scope ngGrid ng1453913625179,那么eveything有效!

我的问题:在ng-if="true"循环中向一个元素追加类是否有问题或任何原因,为什么这有时会起作用而不是所有时间?另外,您能找到有关设置ngGrid的返回值的文档吗?我找不到有关返回值here的任何信息。最后,为什么在$digest的父级上设置pre修复了未附加到ng-if="true"类列表的类名的问题?谢谢!

0 个答案:

没有答案