同时运行Angular和传统的Knockout应用程序

时间:2018-04-25 14:38:04

标签: asp.net-mvc angular knockout.js

我很高兴/不幸开始用Angular重写一个遗留的Knockout应用程序。它必须分阶段发生,因为它是一个大型应用程序。现在我正在重建// Coordinates Translated let Px = Math.abs(Ax - Cx) let Py = Math.abs(Ay - Cy) // Slope of line from Point P to Center let Pm = Py / Px // Slope of rectangle Diagonal let Rm = h / w // If the point is inside the rectangle, return the center let res: [number, number] = [0, 0] // Check if the point is inside and if so do not calculate if (!(Px < w / 2 && Py < h / 2)) { // Calculate point in first quarter: Px >= 0 && Py >= 0 if (Pm <= Rm) { res[0] = w / 2 res[1] = (w * Pm) / 2 } else { res[0] = h / (Pm * 2) res[1] = h / 2 } // Set original sign if (Ax - Cx < 0) res[0] *= -1 if (Ay - Cy < 0) res[1] *= -1 } // Translate back return [res[0] + Cx, res[1] + Cy] 路线下的所有东西。我还必须在ASP.NET MVC解决方案上执行此操作。

我已经设法通过为任何帐户路由提供静态资产来充分开发,构建和运行应用程序。但是,为了防止每次有人在他们的帐户和应用程序的其余部分之间导航时重新加载应用程序,我想找到一种方法来在与淘汰应用程序同时启动角度应用程序。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我有一个愚蠢的想法,但它需要您的额外开发。

也许您可以在Angular应用程序中运行所有内容?

  1. 您的Angular应用应该处理所有路由。
  2. Knockout页面可以在iframe内运行,并通过postMessage
  3. 与Angular互动

    基本概念:

    1. Angular app打开
    2. 用户尝试转到Knockout页面
    3. 角度展示加载状态
    4. 使用挖空页面加载iframe的角度开始(隐藏iframe)
    5. iframe通过postMessage通知Angular它已准备就绪(需要更改您的淘汰应用的路由或初始化逻辑)
    6. Angular停止加载并显示iframe
    7. 用户与淘汰网页互动
    8. 如果用户点击了某个需要重定向的元素,那么knockout应该通过postMessage通知Angular。
    9. 我只能在不了解您的应用详情的情况下描述基本想法。

相关问题