[英]How do I pass a reactive array around the client context in Meteor?
我正在嘗試創建一個類似於此處所示的反應性數組( 如何從Meteor集合制作反應性數組? ),但是該解決方案無法正常工作。
下面的代碼創建了一個數組並正確地對其進行了更新,但是預先輸入無法看到對'foo'集合的任何后續更新。 我也嘗試過使用jquery-ui自動完成功能,但結果相同。
@Coll = new Meteor.Collection "foo"
if Meteor.isClient
Template.myForm.rendered = ->
Meteor.defer ->
$('.inputs').typeahead
source: Template.myList.test()
Meteor.autorun ->
Template.myList.test = ->
_(Coll.find().fetch()).pluck "Name"
我猜這個問題與我依賴於相當hacky的“ Template.myList.test”來存儲數組有關。 我嘗試使用以下內容:
Meteor.autorun ->
test = _(Coll.find().fetch()).pluck "Name"
但預先輸入無法找到“測試”。
因此,這里的解決方案可能是更改我存儲數組的方式,而不是更改find()的執行方式。
如果您希望數組是反應性的,則可能應該使用Meteor集合。 對數組的響應式更新效率極低,因為整個數組都隨着單個元素的更改而更改。
但是,一般而言,Meteor中的自動完成解決方案不應像傳統代碼中那樣依賴靜態數組。 我鼓勵您嘗試一下我的流星感知自動完成軟件包,該軟件包是專門在流星集合之上構建的:
使用會議
Meteor.autorun ->
Session.set 'test', _(Coll.find().fetch()).pluck "Name"
Template.myList.test = ->
Session.get 'test'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.