gpt4 book ai didi

javascript - 从 JS 外部访问 Angular 对象的函数

转载 作者:数据小太阳 更新时间:2023-10-29 05:41:02 24 4
gpt4 key购买 nike

我正在使用 AngularJS 框架构建一个 HTML 应用程序。我有一些遗留的 JavaScript 操作需要访问 Angular 对象中的函数,但我无法让它工作。
这是 Angular 对象(我需要访问的函数是 $scope.info() ):

function content($scope) {
$scope.info = function (id) {
console.log('Got a call from '+id);
$scope.text = "Hello, "+id;
};
}

我试图通过 angular.element('content').scope().info('me') 访问它,但没有结果(控制台显示 undefined )。我试图转储 angular.element('content').scope() 的结果,我得到了完整的对象列表和所有内容。从理论上讲,我的第一个示例应该可以工作,但事实并非如此。

非常感谢任何关于如何实现这一目标的指导!
(PS:Call Angular JS from legacy code 没有解决这个问题)。


当我最终能够访问该函数时,它并没有按预期工作——$scope.text 的值在技术上 进行了修改,但 HTML 中使用的表达式未更新!例如,<p>{{text}}</p>从外部函数调用此函数后不会更新。

有什么办法可以解决这个问题吗?

最佳答案

angular.element() 需要一个 DOM 元素,所以如果你有这个 html:

<div ng-controller="content">
</div>

如果您想访问它的 DOM 元素,请使用一个 id:

<div id="myDiv" ng-controller="content">
</div>

然后

angular.element($('#myDiv')).scope().info('me')

或不使用 jQuery:

angular.element(document.getElementById('myDiv')).scope().info('me')

应该可以。

编辑:

如果您更改了示波器上的某些内容,您可能需要使用 $apply() :

angular.element(document.getElementById('myDiv')).scope().$apply();

关于javascript - 从 JS 外部访问 Angular 对象的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14298361/

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