Javascript 流星动态下拉列表不';行不通
我正在使用语义用户界面。 现在我的下拉列表有问题 下拉列表将动态填充来自minimongo的值 当我在myTemplate.rendered中执行$('.menu').dropdown()时,它会认为下拉列表为空且不起作用,但当我将其放入dropdowntListItems.rendered中时,它会被调用N次。N是项目的计数() 这个解决方案有效。 有更好的解决办法吗Javascript 流星动态下拉列表不';行不通,javascript,meteor,semantic-ui,Javascript,Meteor,Semantic Ui,我正在使用语义用户界面。 现在我的下拉列表有问题 下拉列表将动态填充来自minimongo的值 当我在myTemplate.rendered中执行$('.menu').dropdown()时,它会认为下拉列表为空且不起作用,但当我将其放入dropdowntListItems.rendered中时,它会被调用N次。N是项目的计数() 这个解决方案有效。 有更好的解决办法吗 //myTemplate <div class="menu"> {{#each dropdowntList
//myTemplate
<div class="menu">
{{#each dropdowntList}}
{{> dropdowntListItems}}
{{/each}}
</div>
<template name="dropdowntListItems">
<div class="item">{{item}}</div>
</template>
你所做的是一个很好的解决方案。自从大火被释放后 在
Template.myTemplate.rendered
中,下拉列表为空,因为呈现回调在Template.myTemplate.dropdownList
中的Items().fetch()
完全运行之前触发。此外,添加新项目时,另一个问题是下拉列表不会更新
Avital是MDG的一部分,曾致力于开发新的Blaze引擎,研究如何实现与旧渲染回调(Blaze之前)相同的行为
1:
{{#每个下拉列表}
{{item}}
{{/每个}}
Template.myTemplate.item=函数(){
$('.menu').dropdown();
};
2:。(你做了什么)
{{#每个下拉列表}
{{>dropdowntListItems}
{{/每个}}
{{item}}
Template.dropdowntListItems.rendered=函数(){
$('.menu').dropdown();//被调用N次
};
您所做的是一个很好的解决方案。自从大火被释放后
在Template.myTemplate.rendered
中,下拉列表为空,因为呈现回调在Template.myTemplate.dropdownList
中的Items().fetch()
完全运行之前触发。此外,添加新项目时,另一个问题是下拉列表不会更新
Avital是MDG的一部分,曾致力于开发新的Blaze引擎,研究如何实现与旧渲染回调(Blaze之前)相同的行为
1:
{{#每个下拉列表}
{{item}}
{{/每个}}
Template.myTemplate.item=函数(){
$('.menu').dropdown();
};
2:。(你做了什么)
{{#每个下拉列表}
{{>dropdowntListItems}
{{/每个}}
{{item}}
Template.dropdowntListItems.rendered=函数(){
$('.menu').dropdown();//被调用N次
};
我花了很长时间才明白这一点——可能是因为我不知怎么地对模板名称感到困惑,但以下是我如何创建供应商名称下拉列表,使用Meteor.js和语义Ui从MongoDB集合填充:
首先,为下拉列表及其包含的项目创建模板:
<template name="vendorNames">
<div class="ui selection dropdown">
<input type="hidden" name="vendor">
<div class="default text">Vendor</div>
<i class="dropdown icon"></i>
<div class="menu">
{{# each vendorNames}}
{{> vendorName}}
{{/each}}
</div>
</div>
</template>
<template name="vendorName">
<div class="item" name="vendor">{{name}}</div>
</template>
这与第一个答案没有显著的不同,但我无法得到适合我的答案。一般来说,我对Meteor和编程都很陌生,所以我可能只是错过了一些简单的东西。不管怎样,这个解决方案对我来说都很有效。这花了我一辈子的时间——可能是因为我不知何故对模板名称感到困惑,但下面是我如何创建一个供应商名称下拉列表,使用Meteor.js和语义Ui从MongoDB集合填充: 首先,为下拉列表及其包含的项目创建模板:
<template name="vendorNames">
<div class="ui selection dropdown">
<input type="hidden" name="vendor">
<div class="default text">Vendor</div>
<i class="dropdown icon"></i>
<div class="menu">
{{# each vendorNames}}
{{> vendorName}}
{{/each}}
</div>
</div>
</template>
<template name="vendorName">
<div class="item" name="vendor">{{name}}</div>
</template>
这与第一个答案没有显著的不同,但我无法得到适合我的答案。一般来说,我对Meteor和编程都很陌生,所以我可能只是错过了一些简单的东西。无论哪种方式,这个解决方案对我都有效。应该是Items().find()而不是Items().find()吗
<template name="vendorNames">
<div class="ui selection dropdown">
<input type="hidden" name="vendor">
<div class="default text">Vendor</div>
<i class="dropdown icon"></i>
<div class="menu">
{{# each vendorNames}}
{{> vendorName}}
{{/each}}
</div>
</div>
</template>
<template name="vendorName">
<div class="item" name="vendor">{{name}}</div>
</template>
// Activate semantic-ui jQuery for drop down
Template.vendorNames.rendered = function() {
$('.ui.selection.dropdown')
.dropdown('restore default text')
;
}
// Add the template helper to get the Vendors list
Template.vendorNames.helpers({
vendorNames: function() {
return Vendors.find();
}
});