Javascript 在SPA和Angular JS中加载局部视图的最佳方法是什么

Javascript 在SPA和Angular JS中加载局部视图的最佳方法是什么,javascript,angularjs,Javascript,Angularjs,我有一个SPA,页面中有两个部分。页面的第二部分根据一些业务逻辑参数不断变化。它可以发生在页面加载时或页面加载后 我们能不能有一个占位符,让元素根据一些输入加载这个特定的视图 混淆了基于逻辑加载局部视图(第二部分)的方式 1) 角度布线——它可能无法正常工作,因为我正在尝试加载部分视图,而不是整个视图 2) 需要有“n”个ng includes,用于设置标志的true或false并更改视图 3) ng-使用一组语句进行切换,并要求该开关根据该值加载相应的视图 4) 国家提供者: 5) 根据条件决

我有一个SPA,页面中有两个部分。页面的第二部分根据一些业务逻辑参数不断变化。它可以发生在页面加载时或页面加载后

我们能不能有一个占位符,让元素根据一些输入加载这个特定的视图

混淆了基于逻辑加载局部视图(第二部分)的方式

1) 角度布线——它可能无法正常工作,因为我正在尝试加载部分视图,而不是整个视图

2) 需要有“n”个ng includes,用于设置标志的true或false并更改视图

3) ng-使用一组语句进行切换,并要求该开关根据该值加载相应的视图

4) 国家提供者:

5) 根据条件决定加载哪个视图的自定义指令

需要考虑的另一点是,一旦加载视图,即使在更改视图后,也应保留其中的内容。例如,我有两个角度的局部视图。加载了第一个视图,并且执行了一些操作或用户输入了一些数据,然后由于其他操作,加载了视图2。在view2中完成操作后,我将切换回view1。应从view1还原数据/DOM,而不应加载新视图


任何建议都会很有帮助。

我在做决策时遇到了同样的问题

这是一个单页应用程序,我使用的是一个单一的路径。现在,页面上的图标不是标题的一部分,人们通常会在标题中找到菜单,它们实际上是视图的一部分。我使用主视图,其中所有视图都加载到数组$scope.panes[]中。然后,ng repeat从阵列加载所有视图,如下所示:

<div ng-repeat="pane in panes">
    <div id="{{pane.windID}}" style="position: absolute; top: {{pane.x}}; left: {{pane.y}}; border: 2px solid black; min-height: 78px; height: 10px; overflow: hidden">
        <div style="padding:2px; overflow: auto; background-color: grey; border: 1px solid black">
            <span style="float: left; text-align: left" ng-bind="pane.title"></span><span style="float: right; text-align: right" ng-click="closeWindow(pane.objID)">X</span>
        </div>
        <div compile="pane.content" style="position: ablsolute; background-color: white; height: 10px; padding: 5px; border: 1px solid black; overflow: auto;"></div>
    </div>
</div>

X
因此,每当用户加载视图时,html就会进入$scope.panes[].content。然后通过compile指令编译该html。尝试单击我提供的链接中的图标。所发生的情况是,新内容被添加到视图中,而原始内容(图标)保留下来。我甚至可以将多个视图加载到同一个视图中,每个视图都有不同的数据。正如窗口系统所期望的那样,所有视图都保留在屏幕上。所有这些,没有国家提供者。现在我确定你的应用程序没有打开窗口,我的观点是:


使用数组存储所有数据,当返回到view1时,从先前加载的数组加载数据,而不是从数据库或任何地方重新加载

我在制作时遇到了同样的问题

这是一个单页应用程序,我使用的是一个单一的路径。现在,页面上的图标不是标题的一部分,人们通常会在标题中找到菜单,它们实际上是视图的一部分。我使用主视图,其中所有视图都加载到数组$scope.panes[]中。然后,ng repeat从阵列加载所有视图,如下所示:

<div ng-repeat="pane in panes">
    <div id="{{pane.windID}}" style="position: absolute; top: {{pane.x}}; left: {{pane.y}}; border: 2px solid black; min-height: 78px; height: 10px; overflow: hidden">
        <div style="padding:2px; overflow: auto; background-color: grey; border: 1px solid black">
            <span style="float: left; text-align: left" ng-bind="pane.title"></span><span style="float: right; text-align: right" ng-click="closeWindow(pane.objID)">X</span>
        </div>
        <div compile="pane.content" style="position: ablsolute; background-color: white; height: 10px; padding: 5px; border: 1px solid black; overflow: auto;"></div>
    </div>
</div>

X
因此,每当用户加载视图时,html就会进入$scope.panes[].content。然后通过compile指令编译该html。尝试单击我提供的链接中的图标。所发生的情况是,新内容被添加到视图中,而原始内容(图标)保留下来。我甚至可以将多个视图加载到同一个视图中,每个视图都有不同的数据。正如窗口系统所期望的那样,所有视图都保留在屏幕上。所有这些,没有国家提供者。现在我确定你的应用程序没有打开窗口,我的观点是:


使用数组存储所有数据,当返回到view1时,从先前加载的数组加载数据,而不是从数据库或任何地方重新加载

ng include我正在使用且我更喜欢ng include用于部分视图您应该选中此项:ng include我正在使用且我更喜欢ng include用于部分视图您应该选中此项: