2015-09-02 4 views
1

Я хочу получить доступ к методам, связанным с модальным в другом файле js. Таким образом, я создал глобальный объект с именем приложения и создали методы, как так:Метод доступа Meteor из папки Lib

//global variables  
app = {}; 

//modal components 
app.modal = function (ele) { 
    return { 
    "closeModal": function() { 
     $('.modal.fade').removeClass("in"); 
     $(".browser .overlay").removeClass("show"); 
    } 
    } 
}(); 

Тогда доступ к этому методу closeModal, я в основном называют app.modal.closeModal() в * .js файл. Но я получаю следующее сообщение об ошибке:

Exception in setTimeout callback: TypeError: app.modal.closeModal is not a function 

Я смотрел на этом некоторое время, но не могу показаться, чтобы увидеть, где проблема. Бьюсь об заклад, я делаю что-то действительно глупое.

Благодарим за помощь.

ответ

1

app.modal определяется как функция, а не как объект, поэтому вам нужно будет написать app.modal().closeModal().

Но вы должны определить модальность как объект, как это:

app = { 
    modal: { 
    closeModal: function(){ 
     // whatever 
    } 
    } 
}; 
+0

Я пробовал, как вам было предложено, но я все еще, кажется, получаю следующую ошибку: Исключение в обратном вызове setTimeout: TypeError: app.modal.closeModal не является функцией ... – ramesh

0

Как указано saimeunt, вы, вероятно, хотите использовать что-то вроде:

app = {}; 

app.modal = { 
    closeModal: function() { 
    $('.modal.fade').removeClass("in"); 
    $(".browser .overlay").removeClass("show"); 
    } 
}; 

Кроме того, вы должны будете поместить это файл (содержащий #closeModal) в месте, которое будет загружено до загрузки загружаемого файла. Это предполагает, что вы вызываете это автоматически (кажется, что вы находитесь в пределах setTimeout()).

Подробнее о порядке загрузки см. В ответе: https://stackoverflow.com/a/10741082/4044373.

Смежные вопросы