【问题标题】:Spa application with many Windows open打开许多 Windows 的 Spa 应用程序
【发布时间】:2012-05-28 10:03:42
【问题描述】:

是否可以使用 mvc 4 在 SPA 应用程序中打开许多 Windows。

我的意思是我有一个用户列表。打开一个用户让我进入一个视图,然后我可以返回同一个视图并打开另一个。然后选择直接转到第一个打开的持有该用户状态的用户。

我不知道你是否理解我的问题。

【问题讨论】:

    标签: knockout.js asp.net-mvc-4 single-page-application


    【解决方案1】:

    我认为您可能误解了什么是单页应用程序。它的播放规则与普通网页完全相同,只是您不会离开该页面。

    没有窗口之类的东西,它们只是模拟真实应用程序窗口的 div。您所描述的完全有可能您只需要创建正确的 div 并正确定位/填充它们。例如,前段时间我在 KO 中编写了一个模仿 windows 7 外观和感觉的窗口管理器。

    你可以在这里找到它。

    https://github.com/madcapnmckay/Knockout-UI

    我要提醒的是,单页应用程序是一个高级主题,在了解其含义之前,您应该非常谨慎地深入研究它们。

    编辑

    有很多方法可以分离您的视图模型。对于整个应用程序,我总是有一个主视图模型。在您的情况下,我会在 javascript 中创建一个 UserViewModel 类并新建一个新的类,然后再将其添加到一些可观察的数组中。

    var user1 = new UserViewModel(ajaxdata);
    self.users.push(user1);
    var user2 = new UserViewModel(ajaxdata);
    self.users.push(user2);
    
    <div data-bind="foreach: users">
         <div>
            ... your user window markup goes here
         </div>
    </div>
    

    您可以选择使用模板绑定而不是内联模板。至于加载取决于您的数据。您可以在更新 UserViewModel 之前执行 ajax 调用来获取用户数据,或者您可以在开始时加载所有数据并在您希望它们显示时更新它们。

    希望这会有所帮助。

    【讨论】:

    • 但是当我在“打开”页面上有 2 个用户 div 时,我不明白应该如何分离视图模型。我该怎么做呢。我知道一切都只是 div。
    • 我打开的新用户怎么样。是否应该下载新的 div 以及如何说 ko 模板。他们是否在这种环境中找到了战斗者。
    • 还有一个问题。 jquery选择器怎么样。您是否应该始终在其中使用周围的 div。
    • 哇,谢谢。这有很大帮助。我做了一个小提琴jsfiddle.net/Uv5Ds/49我怎样才能让用户模板div成为一个拥有自己视图模型的页面,这样我就可以在没有父div的情况下对其进行测试。有没有可能
    • 如果您只想单独测试该虚拟机以及在 foreach 中测试,只需将模板 div 移动到命名模板中,例如
      并使用该模板绑定代替 foreach。
    猜你喜欢
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    相关资源
    最近更新 更多