AngularJS:如何从服务器端加载局部视图?

时间:2014-09-08 13:54:45

标签: angularjs spring-mvc angular-routing

我正在开发基于Spring MVC的基于Java的Web应用程序。现在在这个应用程序中,我正在尝试集成AngularJS框架,以获得模块化客户端代码,并且还可以解耦我的客户端站点模式和视图。

在Spring MVC中,我们从控制器返回ModelAndView,在这里我试图将这个返回的视图与AngularJS路由器模块一起使用。

var hmAdministration = angular.module('administration', ['ngRoute']);

hmAdministration.config(function ($locationProvider, $routeProvider) {

    $locationProvider.html5Mode(true);
    $routeProvider.
        when("AngularJSSpringMVC/displayRoleList", {templateUrl: "AngularJSSpringMVC/displayRoleList"});

});

现在 AngularJSSpringMVC / displayRoleList 是一个绑定到控制器API的URL,它返回 ModalAndView。 现在根据我的理解,此处返回的视图应放在我的 <ng-view></ng-view> 标记处。 当我运行这个代码完整的客户端它正在工作,但现在尝试这个代码与SpringMVC集成,似乎仍然需要连接大量的点。

1 个答案:

答案 0 :(得分:0)

首先,AngularJS 始终运行complete client side

你没有指定你的错误,所以我在这里猜测,根据我自己在将Angular与MVC视图集成时的经验。

请注意,浏览器上的地址应如下所示: http://yourserveraddress/#/AngularJSSpringMVC/displayRoleList

#很重要,它区别于Angular路由和MVC路由(在服务器中完成)。上面的地址将加载您的索引页面,您的角度代码应该在其中,这将处理#之后的路线并使其全部工作。

如果您希望在ng-view上加载MVC视图的内容,那就是对了。

建议使用角度不同的足够路线,这样就不会容易混淆,这样的事情可能会更简单:

$routeProvider.
    when("displayRoleList", {
        templateUrl: "AngularJSSpringMVC/displayRoleList"
});

所以你的网址是http://yourserveraddress/#/displayRoleList

我希望这会有所帮助,如果我错过了标记,请分享更多代码。