2015-04-01 65 views
0

這裏是什麼,我有我的模板之一的簡化​​版本:流星:記錄在數據庫更新,但數據不改變屏幕上

{{#each dataRecord}} 

{{#if editingNow}} 

    <tr class="dataRow"> 
    <td><button class="updateRecord" id="{{this._id}}">SAV</button></td> 
    <td><input type="text" id="{{this._id}}" value="{{this.f}}"></td></td> 
    </tr> 

    {{else}} 

    <tr class="dataRow"> 
    <td><button class="edit" id="{{this._id}}">EDIT</button></td> 
    <td>{{this.f}}</td> 
    <td><button class="deleteRecord" id="{{this._id}}">DEL</button> </td> 
    </tr> 

{{/if}} 

{{/each}} 

editingNow返回布爾會話變量的其中開出虛假的價值。所以當頁面加載時,用戶可以看到每個記錄的'f'字段的值和EDIT按鈕。 EDIT按鈕將會話變量翻轉爲true,然後使用輸入元素顯示數據。用戶可以編輯數據並單擊該按鈕,該按鈕現在是一個SAVE按鈕。該按鈕使用_id更新記錄並將會話變量翻回爲false。

就編輯數據而言,作品 - 記錄肯定會更新。我可以檢查控制檯中的值並查看它是否已更改。但是在表格中顯示的數據恢復爲原始值。我可以非常簡單地看到該字段中顯示的更改,然後翻轉。如果我再次單擊編輯按鈕,表格仍然顯示舊值。查看該字段中更新的數據的唯一方法是重新啓動應用程序。

這個問題從來沒有發生過,當我使用我的本地mongo數據庫或當我連接到我的meteor.com數據庫。這只是因爲我將我的應用程序移動到了modulus.io纔開始發生。有任何想法嗎?

UPDATE 雖然我無法弄清楚什麼是在模板中引起反應更新問題,與Ethaan的幫助下,我能更好地理解這個問題,並發現,各地工作,所以我我們已經接受了答案,希望我們能夠最終達到這個目標。

+0

去你的'項目>日誌',並檢查你是否得到一些日誌。 – Ethaan 2015-04-01 15:56:24

回答

2

好像你有一些allow/deny的問題可能嗎?

嘗試用

Collection.allow({ 
insert:function(){return true;}, 
remove:function(){return true;}, 
update:function(){return true;}, 
}) 

或檢查與數據庫的連接是succefull,轉到admin panel on modulus

選項2

清理數據庫,並在服務器上的虛擬插入側。首先在流星殼上運行meteor reset

如果您的應用程序是在modulus.io上使用mongo shell,並使用這段代碼。

db.getCollectionNames().forEach(function(name) { 
    if (name.indexOf('system.') === -1) { 
    db.getCollection(name).drop(); 
    } 
}) 

現在,當您確信該數據庫是,把這個在服務器端。

//Server Code. 
    Meteor.startup(function(){ 
     if(Collection.find().count() == 0){ 
     Collection.insert({serverInsert:"test from server"},function(err,result){ 
     if(!err){ 
      console.log("insert succefull") 
     } 
    }) 
    } 
    }) 
+0

在這一點上,我仍然使用不安全的軟件包,所以不應該有任何允許/拒絕的可能性,錯誤,是嗎?對不起,我應該提到這一點。我不確定我是否理解清空數據庫並嘗試從服務器插入的原因。記錄的更新肯定會發生並且是正確的,但被動模板並未顯示變化,正如我所說,這種變化以前從未發生過。閱讀完這個答案之後,我在服務器上添加了一個方法來執行更新,並且此方法也可以工作,但該模板仍顯示舊值。 – 2015-04-01 17:05:30

+0

如果在控制檯上看到更新的數據,但不在模板上,則此幫助程序'dataRecord'返回正確的數據庫光標? – Ethaan 2015-04-01 17:07:07

+0

這很奇怪。在更新記錄的服務器方法中,我檢查結果值以查看更新了多少個字段。每次都是這樣的結果,因爲它應該是。但是,當我在瀏覽器控制檯中對該ID執行collection.find()時,記錄不會更新。所以這就像出版物停止工作?我的迷你mongo分貝從來沒有得到更新?什麼會造成這種情況? – 2015-04-01 17:33:56