Клиентский вызов Meteor на сервер не возвращает данные

Я создаю приложение, которое имеет Cart. У Cart есть атрибут cartPrice, который обновляется, когда пользователь добавляет или удаляет товары из корзины. Я хочу, чтобы клиент вызывал метод сервера для возврата обновленного значения cartPrice всякий раз, когда пользователь добавляет/удаляет элемент и изменяется cartPrice. Вот мой код:

cart.js:

Template.Cart.helpers({
   cartPrice: function() {
     return ReactiveMethod.call("returnCartPrice");
   }
});

cart.html:

<p>Cart Total: ${{cartPrice}}</p>

метод на стороне сервера для возврата цены корзины:

returnCartPrice: function(error, result) {
    var currUser = Meteor.user();
    var result = currUser.cartPrice.toFixed(2);
    return result;
}

У меня проблема в том, что цена на стороне клиента будет обновляться только в том случае, если я обновлю страницу.

Кто-нибудь может помочь?

Спасибо.


person Trung Tran    schedule 12.06.2015    source источник
comment
См. этот вопрос, чтобы узнать, как вызвать метод из помощника. . Вам нужно изменить реактивную переменную, чтобы ваш помощник снова запустился. Мне нужно знать, как хранится корзина, чтобы дать более точный ответ (находится ли она в переменной коллекции/сеанса и т. д.).   -  person David Weldon    schedule 12.06.2015
comment
Спасибо, Дэвид. Я добавил пакет реактивной переменной, и теперь цена корзины может обновляться. Однако он будет обновляться только на стороне клиента, если я обновлю страницу... Я обновил свой вопрос, чтобы показать код на стороне сервера, а также код реактивной переменной...   -  person Trung Tran    schedule 12.06.2015
comment
О, значит информация о корзине хранится только в документе пользователя? Если это так, вам даже не нужен метод для этого.   -  person David Weldon    schedule 12.06.2015