Как вы вызываете функцию из контроллера jQuery? - PullRequest
0 голосов
/ 30 июля 2011

Я использую JavascriptMVC и у меня есть контроллер вида

$.Controller.extend('AppName.Controllers.ControllerName',
{
  onDocument: true
}
{
  initControllerName: function() {
    ...
  },
  testFucntion1() {
    alert('yeah!!');
  }
});

и я хотел бы иметь возможность вызывать функцию testFunction1 () со страницы, созданной моим представлением.

Я нашел этот вопрос , который, кажется, задает то же самое, но я не смог разобраться с ответом, предоставленным там.

Я пытался

$('#controllername').testFunction1();
$('#ppame_controllername').testFunction1();
$('#ppame_controllers.controllername').testFunction1();

без успеха.

Спасибо за вашу помощь !!

Ответы [ 2 ]

1 голос
/ 16 октября 2013

Ответ Мартина Оуэна точен, за исключением того, что сначала я обнаружил, что app_name_controller_name сбивает с толку.

Реальным примером будет:

если ваш контроллер определен как

$.Controller.extend('Layout.Controllers.Page', 
  ...

затем используйте

$(document).layout_page("testFunction1");

Layout = app_name

Страница = имя_контроллера

0 голосов
/ 31 июля 2011

Вы можете вызвать вашу функцию с помощью:

$(document).app_name_controller_name("testFunction1");

Если вы хотите передать аргументы вашей функции, укажите их после имени функции:

$(document).app_name_controller_name("testFunction1", "Hello World");

onDocument: true вСтатический раздел определения вашего контроллера означает, что он автоматически присоединяется к элементу документа, поэтому вы получаете его экземпляр.Если вы хотите связать его с чем-то другим, удалите onDocument: true и используйте что-то вроде:

$('#main').app_name_controller_name();

Это создаст экземпляр вашего контроллера и присоединит его к элементу $ ('# main').Затем этот элемент доступен в методах контроллера через this.element.

Я не знаю вашу ситуацию, но вам не нужно на самом деле часто вызывать методы контроллера - контроллер должен связываться с событиями, которые инициируютсяпо элементам DOM и опубликовано по моделям.JMVC упрощает привязку методов контроллера к событиям: Прослушивание событий

...