я хочу вставить новые узлы в существующее древовидное представление
Вся идея интерфейсных сред, в том числе Angular, состоит в том, чтобы изменить данные и позволить платформе изменить представление, используяпредоставленный вами декларативный шаблон (как @Component#template
или @Component#templateUrl
).
без обновления
Все в одностраничном приложении выполняется без обновления.В этом весь смысл, и именно поэтому они называются одностраничными приложениями: нет понятия традиционных страниц, которые браузер выбирает с сервера: все изменения выполняются через клиентский JavaScript-код, включая «page »изменения, сделанные реализацией маршрутизатора на JavaScript (общий выбор @angular/router
).
(например, добавление в существующий массив)
Это именно то, чтоты должен сделать.Angular будет обрабатывать обновление представления, если компонент не построен неправильно или сильно оптимизирован и, следовательно, не требует ручного запуска цикла обнаружения изменений, но вы, вероятно, знаете, когда возникают такие случаи, так что я не думаю, что вам нужно беспокоиться об этом.
Я пытаюсь вставить дочерние узлы в выбранный dataItem this.selectedNode.items.push (newItem)
Тогда что-то не так.Попробуйте напечатать весь массив в виде JSON на странице, чтобы увидеть, меняется ли он: {{ selectedNode.items | json }}
.
Я обновлю ответ по конкретной причине, почему вы не видите, что представление изменилось, когдаВы добавляете недостающие детали.Выше приведена общая идея, которая может помочь другим лучше понять, почему представление не обновляется.