使用Durandal动态创建SPA

时间:2013-04-03 16:51:53

标签: javascript knockout.js single-page-application durandal

对于我们的单页应用程序,我们需要构建一个“实时”创建视图和视图模型的系统,而不是将一组定义的视图和视图模型作为.html和.js文件存储在服务器上。 。”

这将是一个Intranet应用程序,我们希望最终用户能够定义他们在使用应用程序时在应用程序中看到和使用的内容。例如,最终用户A创建view1,view2和view3,而最终用户B选择创建view4和view5,依此类推。然后,这些视图将在浏览器会话中创建,并在下次使用该应用程序时以某种方式保存给用户。

他们可以根据需要命名这些视图(例如,仪表板1,工厂视图2等),然后他们可以选择一个或多个“小部件”在每个视图上。 “小部件”将是一组JavaScript / HTML / CSS代码,类似于Web表单世界中的用户控件,并且将执行其特定功能并且能够可拖动和调整大小。当然,用户添加到每个视图的所有小部件都将被保存以供后续使用。

因此,每次最终用户A打开应用程序时,他们都会看到他们的3个视图作为顶部的标签(命名为配置视图后他们命名的内容),他们将能够导航到视图并查看他们在每个视图中选择的小部件并与之交互。

我们的应用程序有点像Trello,其中最终用户可以添加,更新,删除视图等,并且“小部件”可以动态添加到视图中,移动,删除,更新等等所有这些都是以动态创建的方式。

在研究SPA时,视图和视图模型被开发为生活在生产Web服务器上的实际物理文件,并提供适用于所有用户的功能。但是,我们的SPA需要在可用的视图/页面方面更具动态性。

Durandal可以使用这种情况吗?如果是的话,有关如何建立这样的事情的任何指导吗?

或者,Durandal不可能这样吗?如果是这样,对我们来说有什么更好的途径?

作为最后的手段,我们是否需要创建某种html和JavaScript生成器,在用户选择配置的选项后输出文件?

或者?????

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

durandal是一个帮助创建单页面应用程序(SPA)的框架。 SPA基本上只是一个感觉像桌面应用程序的网站。

您可以创建的唯一限制是浏览器的限制。

你可以在浏览器中运行的任何东西都可以在durandal中使用。

您可以在1个水疗中心内拥有多个水疗中心。

如果需要,也可以动态下载css / html / js。

有很多关于如何构建应用程序的选项。

答案 1 :(得分:0)

我认为没有什么能阻止你这样做。

您可以在Durandal启动时定义路由时灵活路由,以便您可以使用保存的视图数据来帮助构建此路由。但我觉得你基本上想要一个其他迷你应用程序所在的shell?您的视图/小部件是否与主应用程序完全分开?如果是这样,您可能不需要自定义路由。

我正在做类似的事情。我使用iframe来托管应用程序,用户可以移动它们。我没有尽力坚持用户的布局。