У меня есть 2 компонента - addProjectForm
и listProjects
. Они представляют собой вложенные компоненты внутри корневого модуля. Всякий раз, когда я добавляю проект с использованием формы, я хочу, чтобы он сразу появился в списке.Принуждение компонента к перерисовке из другого компонента в Mithril.js
Для достижения этой цели, я должен был пройти вниз экземпляр контроллера для каждого компонента, как это:
var RootComponent = {};
rootComponent.controller = function() {
this.example = 'test variable';
}
rootComponent.view = function(ctrl) {
return [
m.component(addProjectForm, ctrl),
m.component(listProjects, ctrl)
];
}
и затем listProjects
компонент, например, выглядит следующим образом:
var listProjects = {
controller: function(root) {
this.root = root;
},
view: function(ctrl) {
console.log(ctrl.root.example);
}
};
Так что это Кстати, я продолжаю вызывать методы на верхнем уровне, но мне не совсем нравится передавать этот экземпляр контроллера таким образом. Есть ли другой способ, которым я должен это делать?
В итоге я использовал «модель». Массив проектов хранится вне компонентов, а затем компоненты просто ссылаются на этот массив. Я думаю, что это лучший подход в этом сценарии, поскольку я добавил еще несколько компонентов, необходимых для ссылки на объект проектов. – Bravi