Я пытаюсь разрешить настройку персонализированного стиля в приложении метеорита. Для аргумента, скажем, я сохраняю значения в массиве объектов, каждый объект, содержащий атрибут «имя» и «значение». Когда я пытаюсь сделать эти объекты внутри блока < >, Meteor вместо этого отображает . комментарий
следующие его мой простейший Доказательство концепции:метеор рендеринга каждый элемент внутри шаблона стиля шаблона
poc.html:
<head>
<title>poc</title>
</head>
<body>
{{> hello}}
</body>
<template name="hello">
<h1>Hello World!</h1>
Styles don't render here:
<style>
body {background-color: #999;}
{{#each styles}}
.{{name}} { {{value}} }
{{/each}}
</style>
Styles render here:
<ul>
{{#each styles}}
<li class="{{name}}">{{name}} : {{value}}</li>
{{/each}}
</ul>
And here:
<div>
{{#each styles}}
.{{name}} { {{value}} } <br/>
{{/each}}
</div>
poc.js:
if (Meteor.isClient) {
Template.hello.styles= function() {
var resultArray=[];
resultArray.push({ name: 'style1', value:'color: #000'})
resultArray.push({ name: 'style2', value:'color: #fff'})
return resultArray;
}
}
Выход в блоке стиля содержит:
<!--data:DuvxkGSiN6BK3M95T--><!--data:GvvkPYg2Adii4NNre-->
вместо ожидаемого:
style1: { color: #000}
style2: { color: #fff}
Не уверен, если это дизайн или ошибка или ошибка в моем понимании. Заранее спасибо.
это было подтверждено, что метеорит не оказывает внутри тегов стиля (https://github.com/meteor/meteor/issues/1460). Поскольку они реактивны, я не уверен, насколько хорошо будет работать второй вариант, так как мне тоже нужно будет удалить их. –
Вам нужно будет отследить индекс правил, используйте deleteRule, чтобы удалить их. Вы также можете сбросить и повторно добавить правила удаления. На самом деле, хотя рендеринг всего элемента, вероятно, будет работать лучше всего. –
В то время я просто передаю весь тег стиля в функциях шаблона и возвращаю его. –