簡體   English   中英

如何在Meteor中的客戶端上下文周圍傳遞反應式數組?

[英]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中的自動完成解決方案不應像傳統代碼中那樣依賴靜態數組。 我鼓勵您嘗試一下我的流星感知自動完成軟件包,該軟件包是專門在流星集合之上構建的:

https://github.com/mizzao/meteor-autocomplete

使用會議

Meteor.autorun ->
  Session.set 'test', _(Coll.find().fetch()).pluck "Name"

Template.myList.test = ->
  Session.get 'test'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM