AngularJS& Spring MVC - 使用$ stateProvider设置templateUrl

时间:2015-08-17 16:58:15

标签: angularjs spring jsp spring-mvc

我正在开发一个使用角度js& amp;弹簧-MVC。

在我的申请表的标题中

header.jsp中

<nav class="navbar navbar-default navbar-fixed-top" >
        <div class="container">
            <div class="navbar-header" >
                <a class="navbar-brand"
                   href="<c:url value="/home"/>" >Pipeline Tracker
                </a >
            </div >
            <div class="collapse navbar-collapse">
                <ul class="nav navbar-nav navbar-right">
                    <li ui-sref-active="active">
                        <a ui-sref="empty">PIPELINE</a>
                    </li>
                    <li ui-sref-active="active">
                        <a ui-sref="employees">ADMIN</a>
                    </li>
                </ul>
            </div>          
        </div>
    </nav>

app.js

app.config(function($stateProvider, $urlRouterProvider){
$stateProvider
    .state('empty', {
        url: '/',
        view: {
            'main':{
                templateUrl: 'views/templates/empty.html',
                controller: 'EmptyController'
            }
        }
    })
    .state('employees',{
        url: '/admin/employees',
        view: {
            'main':{
                templateUrl: 'http://localhost:8070/PipelineClient/views/templates/employee.jsp',
                controller: 'TestController'
            }
        }
    });
$urlRouterProvider.otherwise('/');
});

我无法设置templateUrl属性,因此我的应用程序完美导航。我可以看到url相应地更改为'#/'和'#/ admin / employees'但没有显示任何内容。控制台中也没有错误。

我尝试了两种方式设置templateUrl。一个使用html,另一个使用jsp使用上下文url。他们都没有工作。

我删除了路由并完美地检查了数据加载。没有数据加载问题。

用于加载依赖项:

var app = angular.module('pipeline', [
    'ngResource',
    'infinite-scroll',
    'angularSpinner',
    'jcs-autoValidate',
    'angular-ladda',
    'mgcrea.ngStrap',
    'toaster',
    'ngAnimate',
    'ui.router'
]);

的index.jsp

<div class="container main-content">
    <div ui-view="main"></div>
</div>

Directory Structure:

如何设置此templateUrl属性?我对角度相对较新,所以如果您需要更多信息请知道。

2 个答案:

答案 0 :(得分:1)

我不熟悉您正在使用的“view:”语法。如果你这样做会有效:

    .state("test", {
        templateUrl: "views/templates/empty.html",
        controller: 'EmptyController'
        }

http://localhost:8070/#/test

答案 1 :(得分:1)

我认为这是语法错误,应该是&#34;观看&#34;而不是&#34;查看&#34;。

.state('employees',{
        url: '/admin/employees',
        views: { <--- change view to views
            'main':{
                templateUrl: 'http://localhost:8070/PipelineClient/views/templates/employee.jsp',
                controller: 'TestController'
            }
        }
    });