2015-04-06 57 views
0

我正試圖獲得一個簡單的MultiSelect工作流星。檢查出20個不同的UI庫後,我決定Kendo UI看起來最好。Kendo UI不使用流星?

我環顧四周,發現他們已經設置了流星包(據說)很容易在流星中使用Kendo UI。這是我做了嘗試和流星使用劍道UI得到一種的Hello World與多選的步驟:

meteor create FindMeFood 
meteor add telerik:kendo-ui-core-fiori-theme 

然後我修改FindMeFood.html

<head> 
    <title>FindMeFood</title> 
</head> 

<body> 
    <label for="where">Where</label> 
    <select id="where" multiple="multiple" data-placeholder="Select where..."> 
     <option>McDonalds</option> 
     <option>Burger King</option> 
     <option>Wendy's</option> 
     <option>Five Guys</option> 
     <option>KFC</option> 
     <option>Taco Bell</option> 
     <option>Pizza Hut</option> 
     <option>Papa Johns</option> 
    </select> 
</body> 

最後修改FindMeFood.js

if (Meteor.isClient) { 
    $("#where").kendoMultiSelect().data("kendoMultiSelect"); 
} 

而且什麼也沒發生。當我啓動Meteor並訪問該頁面時,我結束了一個標準的多選框。

回答

2

如果你不想惹在這一點上,只需使用一個

meteor version 1.0.4 or >

if(Meteor.isClient){ 
    Template.body.onRendered(function(){ 
     $("#where").kendoMultiSelect().data("kendoMultiSelect"); 
    }) 
    } 

流星1.0.4 or less

if(Meteor.isClient){ 
    Template.body.rendered = function(){ 
    $("#where").kendoMultiSelect().data("kendoMultiSelect"); 
    } 
    } 

爲什麼rendered function()?與呈現功能,可以確保當DOM準備好,在這種情況下,#where select

+0

@ArtOfWarfare您是否找到解決方法? – Ethaan 2015-04-10 00:23:26

+0

對不起,我正忙着跟我dayjob所有的這一週,也沒有機會再回到這個輔助項目直到剛纔(耶週末)。不管怎麼說,你的解決方案似乎是兩個比較簡單的,不需要我創造,我會永遠只能使用一次模板。所以我將其標記接受。 – ArtOfWarfare 2015-04-11 15:29:31

1

流星是客戶端方法可能運行之前,您的HTML呈現在客戶端。

嘗試這樣做,它的工作只是罰款:

  1. 介紹命名模板在.html文件:

    <head> 
        <title>FindMeFood</title> 
    </head> 
    
    <body> 
        {{> kendo}} 
    </body> 
    
    <template name="kendo"> 
        <label for="where">Where</label> 
        <select id="where" multiple="multiple" data-placeholder="Select where..."> 
         <option>McDonalds</option> 
         <option>Burger King</option> 
         <option>Wendy's</option> 
         <option>Five Guys</option> 
         <option>KFC</option> 
         <option>Taco Bell</option> 
         <option>Pizza Hut</option> 
         <option>Papa Johns</option> 
        </select> 
    </template> 
    
  2. 添加onRendered功能,該模板(在你的JS代碼) :

    if (Meteor.isClient) { 
        Template.kendo.onRendered(function() { 
        $("#where").kendoMultiSelect().data("kendoMultiSelect"); 
        }); 
    } 
    
  3. H有趣的選擇多個位置。

+1

這似乎是一個有效的解決方案,但參與制作,我永遠只能使用一個時間模板的代碼運行,讓我去與另一個提議的解決方案。儘管如此,你的努力+1。謝謝! – ArtOfWarfare 2015-04-11 15:30:26

+0

我同意其他解決方案更一般。 – waeltken 2015-07-06 10:00:08