Умбрако 7: Как я могу обновить древовидное представление в моем пользовательском разделе?
Я создал пользовательский раздел в umbraco для управления некоторыми данными в базе данных SQL.
Я могу редактировать элементы ОК, но при добавлении мне нужно обновить страницу, чтобы увидеть мою новую строку в пользовательском дереве слева.
Как я могу вызвать обновление моего собственного дерева с помощью AngularJS? Мое дерево называется "клиенты".
Я попытался отладить код и посмотреть на источник, чтобы найти событие, но я не могу понять, как это сделать.
Есть ли метод, который я могу вызвать на umbTreeDirective
каким-то образом? Или событие для подписки?
Я довольно новичок в AngularJS и немного борюсь.
1 ответ
Вы ищете навигационный сервис.
Эта строка является примером вызова syncTree:
navigationService.syncTree({ tree: 'clients', path: content.path, forceReload: false, activate: true });
Вот надуманный, обещанный спагетти, но полный пример:
angular.module("umbraco")
.directive('nowplaying', ['navigationService', 'contentResource', 'contentEditingHelper', function (navigationService, contentResource, contentEditingHelper) {
//spaghetti example to create new document
contentResource.getScaffold(parentId, alias)
.then(function (scaffold) {
var myDoc = scaffold;
myDoc.name = name;
//we have minimum to publish
contentResource.publish(myDoc, true, [''])
.then(function (content) {
$scope.newlyCreatedNode = content;
//Sync ('refresh') the tree!
navigationService.syncTree({ tree: 'clients', path: content.path, forceReload: false, activate: true });
});
});
}]);
Вся документация Belle живет здесь. -Я не уверен, что он активно поддерживается, я могу с уверенностью сказать, что одна или две подписи изменились с тех пор, как она была впервые опубликована. Кроме того, это лучший ресурс, который я знаю, чтобы взаимодействовать со всеми модулями и сервисами Umbraco.