2014-02-24 87 views
0

如果有人可以幫助我,我會非常感激。我有一個嵌套的流星集合,我正在創建內聯編輯器。這一切都很好,直到我發現你不能使用#each helper訪問索引。流星嵌套對象的嵌入式編輯器

我正在流星鯊科的工作。

所以我看了一下每一個的流星實現,看到那裏有索引。

這是each.js發現了一個代碼

addedAt: function (id, item, i, beforeId) { 
     addToCount(1); 
     id = LocalCollection._idStringify(id); 

'我' 在這裏是索引。

現在通常您可以通過幫助器中的tmpl.data訪問模板數據。這個tmpl是一個對象,它具有find,find all,data等功能。擴展tmpl對象以包含索引有多困難:i?

我知道他們要實現這個功能,我真的希望它早一點,所以我現在正在尋找一個容易做到這一點。

讓我給你一個對象的例子。

{ 
    "doc_schema": "humans", 
    "full_name": { 
    "titles": "Mr.", 
    "first_name": "Name", 
    "middle_name": "Bads", 
    "last_name": "Last" 
    }, 
    "email": { 
    "main": [ 
     "[email protected]", 
     "[email protected]" 
    ], 
    "personal": [ 
     "[email protected]" 
    ] 
    }, 
    "mobile": { 
     "main": [ 
     "+12345678", 
     "+12345678" 
    ], 
     "work": [ 
     "+12345678" 
    ] 
    }, 
    "service": [ 
    { 
     "service": "Line Producer", 
     "currency": "USD", 
     "cost": 3000 
    }, 
    { 
     "service": "DOP", 
     "currency": "USD", 
     "cost": 50000 
    } 
    ], 
    "city": "New York" 
} 

現在,我可以很容易地修改each.js延長對象的數據包含索引,但如果它的字符串像的電子郵件和電話號碼的情況下一個數組,那麼我不知道是什麼去做。

如果有人知道如何去創建這種對象的內聯編輯器,我歡迎您的建議。

+0

只需寫一個塊幫助程序,將模板/ html純JavaScript,然後返回字符串作爲'new Handlebars.SafeString()'。 –

回答

0

看看從大氣這個第三方包:https://atmosphere.meteor.com/package/repeat-component

$first$last$middle$even$odd$index幫手,它可以被嵌套,語法是:

{{#for things }} 
    {{#for things }} 
    <p>{{ $value }}, {{ $even }}, {{ $odd }}, {{ $index }}, ...</p> 
    {{/for}} 
{{/for}} 

它有一個工作示例http://repeat-component.meteor.com/

+0

這看起來真棒,它真的工作,你有我永恆的謝意。但是,有沒有任何地方的例子,我怎樣才能讓它與光標一起工作?目前我只是無法讓它工作。無論我嘗試什麼,它總是會引發錯誤。 – Bads

+0

編輯:我不知道爲什麼我不能讓這個插件與我的用例一起工作,所以我查看了它的實現,並使用這個包的想法編寫了我自己的幫助程序,並設法使其工作。所以我想我會標記你的答案已解決。謝謝。 – Bads

+0

嗨@Bads有趣的是爲什麼它不適合你,它應該已經迭代了光標。或者你可以嘗試使用cursor.fetch()來獲取它作爲一個數組。希望有所幫助。我們也許可以一起工作來解決這個問題,並在軟件包的回購上創建一個問題/拉取請求,以便每個人都快樂:) –