gpt4 book ai didi

angularjs - 注入(inject)器返回未定义的值?

转载 作者:行者123 更新时间:2023-12-03 09:30:39 24 4
gpt4 key购买 nike

  • 我正在尝试从我的旧代码中获取服务,并遇到了一个奇怪的错误 injector()返回未定义:

    Check this plnkr


  • 另外,我正在尝试将新属性值设置回服务,这会在不使用 watch 的情况下反射(reflect)到范围吗?

  • 非常感谢您,非常感谢任何指针或建议。

    最佳答案

    您试图在构建 DOM 之前获取元素。这与在 $(document ).ready() 之外运行 javascript 基本相同。 .所以这条线没有要获取的元素:

    var elem = angular.element($('#myCtr'));

    另外,顺便说一句,执行上述操作的另一个 Angular 选项不是使用 jQuery,而是:
    var elem = angular.element(document.querySelector('#myCtr'))

    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;
    });
    });

    updated plnkr

    关于angularjs - 注入(inject)器返回未定义的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21096428/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com