2017-12-27 371 views
2

我有一種情況,應該在UI上顯示工作進度,因爲我經常(5秒)檢索工作進度並存儲到mongoDB中。由於語義UI提供了進度條功能,我嘗試在我的流星項目中實現。問題在於進度沒有增加。
我們如何基於mongoDB數據增加語義UI進度條?

sample.html

<div class="ui blue active progress stats" style="padding:0.25%;;width:7%;margin:0% 1%;margin-top:0.5%;" data-value={{prog}} id="statProgress"> 
    <div class="bar"> 
     <div class="progress {{progValue}}"></div> 
    </div> 
</div> 

sample.js

$('#statProgress') 
    .progress({ 
    label: 'ratio', 
    text: { 
     ratio: '{value}' 
    } 
}); 

Template.sample.onRendered (function(){ 
    var progv=Session.get("selectedProgress"); 
    this.$('.ui.progress').progress({value: progv}); 
}); 

Template.sample.helpers({ 
'progValue':function(){ 
    var id=this._id; //job ID 
    console.log("inside the progValue and the id is: ",id); 
    var jobDetails=job.find({_id:id}).fetch(); 
    console.log(jobDetails); 
    console.log(jobDetails[0].prog); 
    Session.set("selectedProgress",jobDetails[0].prog); 
    var x=Session.get("selectedProgress"); 
    console.log(x); 
} 
}); 

任何人都可以點正是我已經錯過了,我該如何糾正呢?

回答

2

幾件事情需要仔細檢查:

  1. 語義UI初始化:你不需要在這裏設置一個值作爲你的價值會被你的幫手

    Template.sample.onRendered (function(){ 
        var progv=Session.get("selectedProgress"); 
        this.$('.ui.progress').progress(); 
    }); 
    
  2. 語義UI提供用法(爲簡單起見,我刪除了您的樣式):如果使用數據值來獲取Blaze助手的值,則不需要再在內部div中添加該值。

    <div class="ui blue active progress stats" data-value={{progValue}} id="statProgress"> 
        <div class="bar"> 
         <div class="progress"></div> 
        </div> 
    </div> 
    
  3. 大火助手:你的助手應該返回一個值!如果上一條語句是console.log(..),則返回值將是'undefined'。你不需要會話,因爲Mongo發現也是被動的,並且會在每次更新時重新運行(順便說一句,另一個建議可能是用'findOne'而不是find()。fetch()和你的輔助可以採取單行):

    'progValue':function(){ 
        var id=this._id; //job ID 
        var jobDetails=job.find({_id:id}).fetch(); 
        return(jobDetails[0].prog); 
    } 
    

好運 JF