我正在尝试从遗留代码中获取服务并在injector()返回undefined时遇到奇怪的错误:
非常感谢,非常感谢任何指针或建议.
Kay*_*ave 10
您正在尝试在构建DOM之前获取元素.这与在a之外运行javascript的问题基本相同$(document ).ready().所以这一行没有要获得的元素:
var elem = angular.element($('#myCtr'));
Run Code Online (Sandbox Code Playgroud)
顺便说一句,不是使用jQuery,而是执行上述操作的另一个Angular选项是:
var elem = angular.element(document.querySelector('#myCtr'))
Run Code Online (Sandbox Code Playgroud)
Angular提供了一个我们可以使用的$(document ).ready()被调用的等价物angular.element(document).ready().
但是你还需要scope在一个内部抓取并执行你的更改,scope.$apply()以便Angular知道你已经改变了应该知道的东西.
结合我们得到的两个:
angular.element(document).ready(function () {
var elem = angular.element($('#myCtr'));
//get the injector.
var injector = elem.injector();
scope= elem.scope();
scope.$apply(function() {
injector.get('cartFactory').cart.quantity = 1;
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8295 次 |
| 最近记录: |