angularjs – 如何通过承诺作为角色的指令属性

前端之家收集整理的这篇文章主要介绍了angularjs – 如何通过承诺作为角色的指令属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想建立一个承诺,然后将其抛出一个指令(使用数据绑定’=’属性类型),然后在指令中执行魔术,但将承诺作为属性传递似乎会导致承诺得到解决因为未定义,所以当然(和任何其他承诺功能)是不可用的。
我怀疑这是由于这个具体的调整:

$q promises are recognized by the templating engine in angular,which means that in templates you can treat promises attached to a scope as if they were the resulting values
– 07000

这实际上导致了承诺在模板中转换为承诺用于存储结果值的$$ v值,并且在链接阶段,这可能仍然是未定义的 – 转换的值(即未定义),而不是承诺本身然后被传递到指令中。

解决方法是不将promise本身用作传递给该指令的属性,而是将其作为父对象的一部分:父对象不会有$ q / template引擎魔法运行,因此您可以从父母深入到承诺,然后从那里访问功能

参见http://jsfiddle.net/cebjyre/95sjT/的一个例子 – 取消注释行32将导致由于顶级承诺失败,不再实际上是在这一点上的承诺,而第17级承诺在第17行工作正常

猜你在找的Angularjs相关文章