Revel结合angularjs ngRoute,ng-view无法正常显示。

最近在用Revel和Angularjs搭建环境。

想用Angularjs的ng-view做SPA。

但似乎由于Revel有自己的route方法,所以用angular ng-route始终无法正确显示模板页面。

angularjs是1.4.7版本。

样例代码如下:

        <ul class="nav navbar-nav navbar-right">
            <li data-match-route="/"><a href="/"><i class="fa fa-home fa-fw"></i>&nbsp; Home</a></li>
            <li data-match-route="/Example"><a href="#example"><i class="fa fa-users"></i>&nbsp; Example</a></li>
            <li><a href="#"><i class="fa fa-sign-out"></i>&nbsp; Logout</a></li>
        </ul>
    </div>
</nav>

<div ng-view>

</div>

js

var nwapp = angular.module('nw', ['mgcrea.ngStrap', 'ngAnimate', 'ngSanitize', 'ngRoute']);

nwapp.config(['$routeProvider'], function($routeProvider) {
    $routeProvider.when('/', {
        templateUrl: '/',
        controller: 'main_control'
    }).when('/example', {
        templateUrl: 'example.html',
        controller: 'example_control'
    });
});

nwapp.controller('example_control', function($scope){

});

nwapp.controller('main_control', function($scope){

});

怎样才能让angular ng-route在revel下正常工作?是否目前的revel还不支持?
请指教。

共 2 个回复


jimmykuu

试试加一个配置:

nwapp.config(["$locationProvider", function ($locationProvider) {
  $locationProvider.html5Mode(false).hashPrefix('!');
}])

这样可以用 #!/example 这种形式来管理AngularJS 的路由,不会和 Revel 的路由冲突。

# 0

sephrouse

还是不行。无论使用#/xxx还是#!/xxx,angularjs无法get到服务器端的html。

# 1