2014-09-18 2 views
1

Im пытается реализовать одностраничное приложение с использованием активных компонентов, и мне нужно иметь некоторые параметры на странице. Я сделал так:Получить данные из родительской области

... 
data: { 
    options: { 
     someOption: true 
    }, 
... 

Все было прекрасно, пока я использовал его как {{#if options.someOption}}, но потом я столкнулась с проблемой - rective.get('options.someOption') возвращает неопределенное значение (как с ractive.get('options')). Наблюдение не работает. Есть ли способ, чтобы мой код меня понял?

UPD. Случайно решена проблема с частью магии - get() начинает работать, когда я помещаю {{options.someOption}} в шаблон.

+1

Я думаю, что это ошибка! Я поднял вопрос о GitHub: https://github.com/ractivejs/ractive/issues/1228. Спасибо –

+1

Эй @ Xandrmoro, только FYI, этот вопрос был исправлен сейчас: http://jsfiddle.net/rich_harris/c0kvgc1s/ Он будет частью следующего стабильного выпуска, или вы можете использовать его сразу (http: //cdn.ractivejs.org/edge/ractive.js) –

+0

@RichHarris, ty! Ответы разработчиков - возможно, самые большие минусы Ractive: p – Xandrmoro

ответ

2

теля Тяговый программный доступ к данным внутри экземпляра (включает в себя компоненты) может только в настоящее время «видеть» данные, которые:

  1. Определяются как данные
  2. указан в явном виде в качестве компонента параметра
  3. используются в качестве ссылки в шаблоне

для # 1, вы можете включить в него параметры, как данные по умолчанию, и он будет доступен для всех экземпляров:

Ractive.default.data = { 
    options: {...} 
} 

Любой новый экземпляр Ractive, включая компоненты, будет иметь свойство данных options.

Для # 2, даже если у вас есть глубоко вложенные компоненты, вы можете иметь родительский компонент, который нуждается в данных, включают его в качестве параметра:

// Component somewhere in the "app" hierarchy. 
// By referencing {{options}} in its template, it will find that data 
// make it explicit on the widget component, which can then use it 
// programmatically 

<widget options='{{options}}'/> 

Для # 3, вы можете включить " манекен»ссылка в шаблоне компонента:

// by using it in the template, it is now available for programatic access 
{{#with options}}{{/with}} 

конечно, то есть # 4, повышение теля Тяговая, чтобы тот же поиск в коде как шаблон

+0

Опции # 4 теперь работают для 'ractive.get()' в компонентах для родительских данных ([все еще необходимо установить] (https://github.com/ractivejs/ractive/вопросы/1284)). – martypdx

Смежные вопросы