Я создаю пакет метеора (в основном для собственного использования), и я хотел бы, чтобы он предоставлял некоторые свойства только для чтения, от которых могут зависеть вычисления вне пакета. Основной js-файл моего пакета выглядит примерно так:
MyPackage = (function() {
var prop1, prop2, myPackage = {};
function setProp1(val) { prop1 = val; }
function setProp2(val) { prop2 = val; }
myPackage.publicMethod = function () {
// This might change prop1 and prop2 via the setters as a side effect
};
myPackage.getProp1 = function() { return prop1; };
myPackage.getProp2 = function() { return prop2; };
return myPackage;
}();
Объект MyPackage экспортируется с помощью api.export и функционирует как своего рода модуль.
Я хотел бы иметь возможность определить вспомогательную функцию в каком-то шаблоне где-нибудь, которая реагирует на изменения в значениях prop1 и prop2, но при этом сохранять их изоляцию за методами получения getProp1 и getProp2. Как лучше всего это сделать?
Я прочитал раздел документации по Deps.Dependency -- мне просто нужно спроектировать геттеры? и внутренние сеттеры, использующие depend() и change(), или что-то должно произойти в файле package.js?