Первое, что нужно понять, это то, что ваш parts
помощник а) не работает и б) не то, что вам нужно в любом случае.
bandmusic.find({parts})
не означает «вернуть массив частей из документов в коллекции bandmusic», что, как вам кажется, и требуется. {parts}
- сокращение от ES6 для {parts: parts}
(см. этот ответ ). Но ваша функция не имеет переменной parts
- поэтому в вашем find
вы действительно говорите: «найдите документы, которые соответствуют условию {parts: undefined}
То, что вы пытаетесь сделать со своим вложенным #each
, это циклически проходить по каждому документу в базу данных, а затем в каждом документе выполните цикл по массиву parts
.
Итак, вы получаете документы от своего помощника pieces
, и каждый документ содержит массив parts
, который вы можете просто циклически проходить без помощи помощника.
Ваш код должен работать, если вы просто удалите parts
помощник. У Blaze есть порядок поиска, о котором вы можете прочитать здесь . Это означает, что когда Blaze видит parts
, он сначала думает: «Есть ли помощник, который называется parts
?» - который есть, и он не работает, так что ничего не происходит.
Но что вы хотите, чтобы это подумайте: «Есть ли поле в текущем контексте данных, называемое parts
», - оно есть, но helpers
идет выше в порядке поиска, поэтому оно никогда не попадает туда.
Так что самое простое решение в теории это удалить помощника.
Как видно из ссылки lookup order
, часто неясно, что относится к тому, что в пробелах / Blaze. Вы можете сделать вещи намного понятнее, используя синтаксис, описанный в Blaze docs для each
Вместо #each array
вы должны ввести новую переменную для ссылки на текущий элемент в массив - #each item in array
. А затем получите доступ к свойствам элемента как обычно - item.prop1 - item.prop2
Таким образом, ваш новый код становится:
{{#each piece in pieces}}
{{piece.name}}
PDF
AUDIO
FORMAT
${{piece.price}}
{{#each part in piece.parts}}
{{part.pname}}
{{part.pprice}}
{{/each}}
{{/each}}
Для этого тоже есть ключ реестра: [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Languages\Language Services\C/C++]
Intellisense ON
"IntellisenseOptions"=dword:00000000
Intellisense OFF
"IntellisenseOptions"=dword:00000007
Intellisense ON - NO Background UPDATE
"IntellisenseOptions"=dword:00000005
Больше флагов доступно, и вы можете Контроль интеллекта через макросы, а также.
ISENSE_NORMAL = 0 'normal (Intellisense On)
ISENSE_NOBG = &H1 'no bg parsing (Intellisense Updating Off - although NCB file will be opened r/w and repersisted at shutdown)
ISENSE_NOQUERY = &H2 'no queries (don't run any ISense queries)
ISENSE_NCBRO = &H4 'no saving of NCB (must be set before opening NCB, doesn't affect updating or queries, just persisting of NCB)
ISENSE_OFF = &H7
В свойствах проекта Вы найдете информацию об обзоре под:
Свойства конфигурации-> C/C++-> информация об Обзоре
Просто скажите этому не генерировать информацию об обзоре. Все, для чего это используется, быстро просматривает между компонентами кода (как использование, 'Переходят к Определению'), и т.д. Мне лично нравится способность быстро перейти между компонентами, но если она добавляет, что ненужное время к Вашей компиляции не волнуется о выключении ее.
Попытайтесь создать папку с тем же названием файла NCB (необходимо будет удалить файл, конечно). Я использовал этот прием в прошлом, чтобы препятствовать тому, чтобы intellisense блокировал VS2005. Вы потеряете intellisense, все же.