javascript - 我可以使用 Angular 将客户端行为注入(inject) Umbraco 7 后台吗?

标签 javascript angularjs umbraco7

我正在使用自定义的 Umbraco 安装,并且遇到这样的情况:当用户首次单击某些类型的内容的“发布”按钮时,我需要运行一些额外的用户交互。实际上,这将弹出一个框,允许他们在将发布的内容共享到第三方服务时使用自定义消息。

虽然我精通 Javascript,但我并没有花很多时间使用 Angular,而且我所做的事情相当直接。

在这种情况下,编辑器使用 Umbraco 中内置的标准 Angular Controller - 理想的情况是 Hook 到其范围并在提交表单时添加事件处理程序,但我不知道如何访问它,我怀疑它可能根本不可能。

我通过插件在页面中提供了 JavaScript,但我可以直接访问涉及的表单元素,但我觉得这可能非常脆弱 - 特别容易受到 Umbraco 的影响更新 - 而且它总体上与后台的风格相悖。

Angular 或 Umbraco 是否提供了任何可以让我做到这一点的东西?如果没有,插入此行为的最实用方法是什么?

最佳答案

正如你所说,做这种事情很容易在更新期间中断。尽管使用 IContentService 事件不允许您显示模式客户端,但我建议您在应用程序启动期间在 IContentService.Saving 事件上注册一个偶数处理程序。

public class ApplicationStartup : ApplicationEventHandler
{
    protected override void ApplicationStarting(UmbracoApplicationBase umbracoApplication,
        ApplicationContext applicationContext)
    {
        ContentService.Saving += ApplicationEvents.ContentService_Saving;

        base.ApplicationStarting(umbracoApplication, applicationContext);
    }

    internal static void ContentService_Saving(IContentService sender, SaveEventArgs<IContent> e)
    {
        if (e != null && e.SavedEntities.Any())
        {
            foreach (var entity in e.SavedEntities.Where(content=> content.ContentType.Alias == "something"))
            {


            }
        }
    }
}

关于javascript - 我可以使用 Angular 将客户端行为注入(inject) Umbraco 7 后台吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34878637/

相关文章:

javascript - Wrapping Foundation 4 在 Angular 中展示

dependency-injection - 是否可以将依赖注入(inject)与 Umbraco 7 ContentService 事件处理程序一起使用?

ajax - 使用 AngularJS 将数据发送到 ASP.NET MVC 5 Controller 的操作方法

返回星期几 x 天数后的 javascript 函数

javascript - 无法在使用ajax调用MVC调用的部分 View 中运行javascript

javascript - 在客户端防止 XSS(纯 Javascript)

javascript - AngularJS - 将配置参数传递给指令

css - 显示选定的选项颜色 - AngularJS

umbraco - Umbraco 缓存结构有何差异?

javascript - 如何在我的网站上显示 map 并允许用户选择国家