gpt4 book ai didi

javascript - 如何从外部访问组件Controller

转载 作者:行者123 更新时间:2023-11-30 21:20:17 26 4
gpt4 key购买 nike

我使用的是 Angular 1.5,我有一个这样的组件

        angular
.module('appliactionModule')
.component('umleditor', {
bindings: {
...
},
templateUrl: 'app/uml-editor/umleditor.html',
controller: UmlEditorController
});

function UmlEditorController( ... ){ ... };

然后在 app/uml-editor/umleditor.html 中,我希望有一些 javascript 能够像这样访问 Controller UmlEditorController:

<div class="editor-wrapper" id="editor">
...
<script>
// Accessing Services like this works
var FooService = angular.element('*[ng-app]').injector().get("FooService");

// How do I get the controller?
controller.doSomething();

</script>
</div>

如何从外部获取对我的 Controller 的引用,以便我可以从常规 JavaScript(而非 Angular)中使用它?

最佳答案

如果有 umleditor 组件, Controller 实例可以通过以下方式检索:

angular.element(document.getElementById("editor")).controller('umleditor');

或者

angular.element(document.getElementById("editor")).isolateScope().$ctrl;

这被认为是一种不好的做法,应该用于测试或作为快速修复。通常必须做相反的事情,外部 JS 代码应该用 Angular 应用程序包装。

关于javascript - 如何从外部访问组件Controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45263908/

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