【问题标题】:Return partials from Spring controllers + integration with ngRoute从 Spring 控制器返回部分 + 与 ngRoute 集成
【发布时间】:2015-11-05 19:05:36
【问题描述】:

my question回答后,我搜索了很多时间,现在不知道如何解决这个问题: 如何从 Spring 控制器(不是整个页面)返回部分内容以进一步与 ngRoute 集成。主要问题已在上面链接。 PS:模板引擎:Thymeleaf

【问题讨论】:

  • 您使用哪种模板语言(如果有)? JSP?
  • 我正在使用 Thymeleaf。
  • 我会将您的页面分解成片段,然后返回其中一个作为您的视图。
  • 它们已经坏了,但是当我从控制器返回一个片段时,它会呈现整个页面,没有导航或其他东西。只有内容。

标签: angularjs spring spring-mvc thymeleaf ngroute


【解决方案1】:

如果你使用 Angular 和 thymeleaf,为了避免页面渲染,你可以使用如下指令:

app.directive("show", function() {
    return {
        restrict: 'E',
        scope: {
            resolved: '=resolved'
        },
        templateUrl: '/detail.html' 
    };      
});

指令的 html 应该以如下内容开头:

<div ng-if="resolved">
<div class="col-md-10" ng-if="deviceDetail">
</div>
</div>

你可以在你的模板中添加标签:&lt;show resolved="resolved" ng-cloak=""&gt;&lt;/show&gt;

问题的答案:

在 Thymeleaf+angular 中,您不会使用不同的页面。您有一个页面并在其中呈现部分。正如你所说的第 1、2、3.html 页和菜单。

我要做的是将菜单作为页面的模板,然后第 1 到 3 页包括取决于你在上面做什么。

条件 1:如果信息来自服务器或弹簧,则在 thymeleaf 上进行。 条件2:如果你需要处理信息或与用户交互使用angular。

我给你的代码是包含页面作为条件 2。如果你需要条件 1,那就更简单了:

在您的页面中:

<div layout:include="blah :: blah">Section that show</div>

与您的页面在同一文件夹中的新页面(调用 blah.html):

 <!DOCTYPE html>
<html>
<body>
    <div layout:blah="blah">
here code...
    </div>
</body>
</html>

【讨论】:

  • 我试图实现这个没有成功。你能扩展答案吗?例如,我有 1、2、3.html 和菜单。我想在这些页面之间切换。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-19
  • 1970-01-01
  • 1970-01-01
  • 2014-07-30
  • 2017-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多