Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ns.Model] Данные в событии ns-model-changed.{some-jpath} #513

Open
Rebulus opened this issue Feb 2, 2015 · 1 comment
Open

Comments

@Rebulus
Copy link
Contributor

Rebulus commented Feb 2, 2015

На данный момент в обработчик события попадает только имя события и jpathы.
https://github.com/yandex-ui/noscript/blob/master/src/ns.model.js#L276
Кажется, было бы здорово передавать в обработчик экземпляр модели, в которой было вызвано событие, и изменившиеся данные (возможно и их предыдущее значение);
Либо, дать возможность расширять поведение по своему усмотрению, например выделив вызов события в отдельный метод:

while (l > 1) {
    var _jpath = parts.slice(0, l).join('.');
    this.tiriggerChangedEvent(_jpath, jpath);
    l--;
}
...
ns.Model.prototype.tiriggerChangedEvent = function() {
    this.trigger('ns-model-changed' + _jpath, _jpath, jpath);
};

Почему появилось такое пожелание. В обработчике события частенько приходится обращаться к изменившемуся свойству и модели. Постоянно писать:

this.getModel('some-model-id').get(jpath)

становится утомительным. Все же наличие данных в модели более интересно, нежели чем jpath.

@Rebulus
Copy link
Contributor Author

Rebulus commented Feb 2, 2015

Так же хотелось бы, чтобы в событие попадали options, с которым оно было вызвано. Иногда это удобно, для отслеживания, что изменение модели было вызвано самим полем и обрабатывать это изменение не нужно.
Почему не подходит silent: он не дает возможности другим участникам системы обработать изменение свойства модели.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant