Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Knockout.js 打开多个窗口的Spa应用程序_Knockout.js_Asp.net Mvc 4_Single Page Application - Fatal编程技术网

Knockout.js 打开多个窗口的Spa应用程序

Knockout.js 打开多个窗口的Spa应用程序,knockout.js,asp.net-mvc-4,single-page-application,Knockout.js,Asp.net Mvc 4,Single Page Application,使用MVC4是否可以在SPA应用程序中打开多个窗口 我的意思是我有一个用户列表。打开一个用户让我进入一个视图,然后我可以返回到同一个视图并打开另一个视图。然后选择直接转到保存该用户状态的第一个打开的用户 我不知道你是否理解我的问题 我想你可能误解了单页应用程序是什么。它按照与常规网页完全相同的规则播放,除非您不离开该网页 没有windows之类的东西,它们只是模拟真实应用程序窗口的div。您所描述的是完全可能的,您只需要创建正确的div并正确定位/填充它们。例如,不久前我用KO编写了一个窗口管理

使用MVC4是否可以在SPA应用程序中打开多个窗口

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


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

我想你可能误解了单页应用程序是什么。它按照与常规网页完全相同的规则播放,除非您不离开该网页

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

你可以在这里找到它

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

编辑

有许多方法可以分离viewModels。对于整个应用程序,我总是有一个主视图模型。在您的例子中,我将使用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>
var user1=新的UserViewModel(ajaxdata);
self.users.push(user1);
var user2=新的UserViewModel(ajaxdata);
self.users.push(user2);
... 您的用户窗口标记位于此处
您可以选择使用模板绑定而不是内联模板。至于加载由您决定的数据。您可以在更新UserViewModel之前执行ajax调用以获取用户数据,或者您可以在开始时加载所有数据,并在需要显示时进行更新


希望这能有所帮助。

但当我在“打开”页面上有两个用户div时,我不知道该如何分离viewmodels。我该怎么做呢。我知道一切都是div。那我打开的新用户呢。应该下载新的div吗?比如说ko模板。他们在这种环境中找到了战斗吗?还有一个问题。jquery选择器怎么样。你应该一直用你周围的div吗谢谢。这帮了大忙。我做了一个小动作,如何让用户模板div成为一个有自己视图模型的自有页面,这样我就可以在没有父div的情况下对其进行测试。如果您只想在foreach中单独测试vm,那么是否有可能,只需将模板div移动到一个命名模板中,例如,并使用模板绑定代替foreach。