$
переменная содержит ссылку на экземпляр контроллера. Он также содержит некоторые ссылки на все индексированные представления (понимать, представления, для которых вы указали индекс в вашей разметке xml).
Оба способа строго эквивалентна, как во время компиляции, Alloy сольется содержание exports
с контроллером, указанным в $
. Добавление их непосредственно в экземпляр ничего не изменит.
Бесполезно, разработчики привыкли видеть публичный API как набор функций, экспортируемых с помощью специальной переменной exports
; Таким образом, я рекомендую использовать его в чистом и понятном виде (например, определяя свои функции в области вашего модуля и выставлять их только в конце или в начале вашего контроллера).
function myFunction1() { }
function myFunction2() { }
function myFunction3() { }
exports.myFunction1 = myFunction1;
exports.myFunction3 = myFunction3;
Таким образом, ваш API вполне понятен для людей, погружающихся в ваш исходный код. (Файл readMe также настоятельно рекомендуется :)).
благодарит за это четкое объяснение –