Как работать с глобальным конфигом без магического режима?
С версии 0.9 "магический режим" удален.
Как мы теперь должны обрабатывать сценарии, как в этом примере:
Обновление всех цен при обновлении глобального конфига с тарифами
http://jsfiddle.net/Inversion/7an5hdb5/
conf =
g_currency_exchange_rates:
usd:27
win.r = new Ractive
el: 'cont'
template: '#tpl'
magic:true
data:
conf:conf
items_prices_usd: [5, 10, 25]
in_uah: (v)-> v * @get 'conf.g_currency_exchange_rates.usd'
update_rate = ->
conf.g_currency_exchange_rates.usd += Math.round(Math.random()*2-1)
setInterval update_rate, 500
В этом примере есть только один экземпляр Ractive, но представьте, что у вас есть несколько разных на странице, и все они используют одну и ту же конфигурацию и должны динамически обновлять любые изменения скорости. И они действительно должны быть отдельными корневыми экземплярами, а не вложенными компонентами.
Например, если вы вошли в систему как администратор - панель администратора может отображаться по требованию, и она похожа на другое приложение, но опирается на ту же конфигурацию.
1 ответ
Если у вас есть ссылка на экземпляр, вы можете позвонить ractive.update()
после установки новых данных.
https://jsfiddle.net/artvhvpo/
console.clear();win=window
conf =
g_currency_exchange_rates:
usd:27
win.r = new Ractive
el: 'cont'
template: '#tpl'
magic:true
data:
conf:conf
items_prices_usd: [5, 10, 25]
in_uah: (v)-> v * @get 'conf.g_currency_exchange_rates.usd'
update_rate = ->
conf.g_currency_exchange_rates.usd += Math.round(Math.random()*2-1);win.r.update()
setInterval update_rate, 500