在AngularJS组件的控制器中实现getInstance(elem)

时间:2018-09-24 08:59:40

标签: javascript angularjs instance 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不是函数

通过instance变量时,我得到

  

无法读取未定义的属性“ open”

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

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

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

1 个答案:

答案 0 :(得分:1)

实际上是通过使用querySelector()而不是querySelectorAll()来实现的。