yandex-ui / noscript

Noscript: JavaScript MVC Framework for building SPA
http://yandex-ui.github.io/noscript/
MIT License
34 stars 22 forks source link

paramsRewrite вью-коллекции не влияет на параметры деток #632

Open vitkarpov opened 7 years ago

vitkarpov commented 7 years ago

Есть вью-коллекция:

ns.View.define('foo', {
  models: ['m'],
  split: {
        byModel: 'foo',
        intoViews: 'foo-item'
  },
  // эта вьюшка зависит неявно от p1, потому что зависит от модели m,
  // в процессе жизни в параметрах страницы появляются разные p1,
  // но хочется, чтобы эта вьюшка смотрела только на экземпляр m с параметром p1 == '/feed'
  // и сама была в единственном экземпляре (лежит в боксе), поэтому определим p1 явно
  paramsRewrite(params) {
      params.p1 = '/feed';
      return params;
  }
})

есть детки:

ns.View.define('foo-item', {
  models: ['m']
})

Детки так же зависят от модели m и, соответственно, имеют параметр p1, однако, он будет браться из параметров страницы, а не из параметров вью-коллекции (которые переписаны) — это кажется, странным, приходится писать paramsRewrite в двух декларациях: вью-коллекции и деток

vitkarpov commented 7 years ago

@chestozo похоже на баг?

vitkarpov commented 7 years ago

Вообще, конечно, странно, что появляется желание «заставить» вьюшку смотреть всегда на модельку с одним и тем же параметром: параметры страницы меняются, другие вьюшки получают другие экземпляры, а вот эта непременно должна смотреть всегда на один и тот же.

Согласен с тем, что здесь есть архитектурная кривизна :(

chestozo commented 7 years ago

Давай голосом реальный кейс обсудим )