javascript - 在 AngularJS 组件的 Controller 内实现 getInstance(elem)

标签 javascript angularjs instance materialize

我正在尝试使用 Materialize 的 .open() 方法在页面加载时打开 AngularJS 中的模式组件。

所以我的组件文件(loginModal.js)具有以下代码:

angular.module('my-app').component('loginModal', {
    templateUrl:'app/components/templates/loginModal.html',
    controller: loginModalController
})


function loginModalController()
{
    angular.element(document).ready( function(){

        var loginModal = document.querySelectorAll('.modal');
        var loginModal_options = {};
        var loginModal_instance = M.Modal.init( loginModal, loginModal_options);

        console.log(loginModal_instance);
        loginModal_instance.open();

        var instance = M.Modal.getInstance(loginModal);
        instance.open();


    });
}

虽然当我尝试触发 open 方法时初始化按预期进行,但通过我得到的 loginModal_instance 变量

loginModal_instance.open is not a function

通过 instance 变量我得到

Cannot read property 'open' of undefined

相反,如果我要使用 JQuery,它就可以工作

function loginModalController()
{    
    $(document).ready(function(){
          $('.modal').modal();
          $('#login-modal').modal('open');
    });
}

有什么想法吗?我做错了什么吗?

最佳答案

实际上,通过使用 querySelector() 而不是 querySelectorAll() 就可以达到目的。

关于javascript - 在 AngularJS 组件的 Controller 内实现 getInstance(elem),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52475782/

相关文章:

JavaScript 使用逗号进行短路变量赋值

javascript - 将 Google map 样式数组转换为 Google 静态 map 样式字符串

javascript - Angularjs-ui-路由 : transition animation not working

javascript - 在集成 Google Plus 的同时,如何在 Angular JS 中使用 google Oauth 接收刷新 token

class - 如何通过 while/for 循环创建一个类的多个精确实例(以访问它们的属性)?

javascript - javascript 中命名空间类与实例的约定?

javascript - 如何避免在初始化期间提供虚拟 Vue 数据结构?

javascript - 哪里写成功和错误

ruby-on-rails-3 - 在Rails应用程序的Haml View 中使用AngularJS

WCF:如何从 ServiceHost (WCF 4.5) 获取创建实例的引用