Я не мог найти ответ или решение проблемы: как я могу привязать переменную (переменная сеанса, не коллекцию mongo) реактивно в угловом метеор?Реактивная переменная non-mongo в angular-meteor
Я перехожу из автономного метеор. Здесь я мог бы использовать метод template.helper. Поскольку я больше не могу использовать шаблоны (и железо: маршрутизатор) с угловым метеорным и угловым маршрутизатором, я больше не могу связывать реактивность с помощником (по крайней мере, в моем понимании).
Я попробовал это в метеоритный-угловой контроллер, который принадлежит к sentence.tpl файла:
$scope.parsestring = function(input_string){
tokenizer(input_string);
};
$scope.sentence_type = Session.getJSON("current_sentence.sentence_type");
Tokenizing работает (я могу увидеть его в отладчике), но отображается только значение, когда Я перезагружаю страницу. То, что я хочу достичь, - это токенизация строки из входного поля в представление JSON (этот токенизатор позаботится об этом) и отображает его по аналогии с представлением JSON структурированным способом (отдельные элементы ввода html, которые создаются динамически). Функция_предложения - это переменная, которая должна использоваться на html-странице для отображения и изменения типа предложения, который может меняться при наборе текста.
У кого-нибудь есть подсказки? Может быть, я мог бы также использовать некоторую функцию Angular, которую я не знаю?
Приветствия, Jan
Код Репо:
Мой текущий код выглядит следующим образом:
My code looks similar to this:
angular.module('ngaignt').controller("InteractorCtrl", ['$scope', '$meteor', '$meteorCollection',
function ($scope, $meteor, $meteorCollection) {
// Autorun is necessary to make reactive variables out of the JSON returns
var c = Tracker.autorun(function (comp) {
$scope.verb_type = Session.getJSON("current_verb.type");
$scope.object_type = Session.getJSON("current_object.type");
$scope.verb_attributes = _.toArray(Session.getJSON("current_verb.attributes"));
$scope.object_attributes = _.toArray(Session.getJSON("current_object.attributes"));
if (!comp.firstRun) {
// only do not do aply at first run becaulse then apply is already running.
$scope.$apply();
}
});
$scope.parsestring = function (input_string) {
interactor(input_string);
};
//$scope.on('$destroy', function() {c.stop()});
}]);
Я видел, что существует метод getReacivity (http://angularjs.meteor.com/api/getReactively), но он все еще нуждается в коллекции. – jacques
getReactively может принимать любую переменную $ scope, будь то объект или массив – Urigo
Возможный дубликат сессии [Angularjs and Meteor «Session», есть ли способ?] (Http://stackoverflow.com/questions/14073306/angularjs-and- метеор-сессия-реактивность-есть-там-путь) –