AngularJS只加载组件html而不是整个ng-view

时间:2019-01-29 23:36:31

标签: javascript angularjs ngroute ng-view

我创建了一条路线,一条路线可以容纳这些参数,并在它们上调用ng-view中的特定html。

<div id="navPost" class="row">
            <div  class="col-sm-8">
                <div class="levakolona">
                    <main ng-view></main>
                </div>
            </div>
            <div class="col-sm-4">
                <div class="desnakolona">----
                    // something
                </div>
            </div>
        </div>

这是路线...

app.config(['$routeProvider', '$locationProvider',function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');
$routeProvider
.when("/", 
{
    title: 'Glavna',
    templateUrl : "/pages/kartice.html",
    controller: 'kontroler'
})
.when("/glavna", 
{
    title: 'Glavna',
    templateUrl : "/pages/kartice.html",
    controller: 'kontroler'
})
.when("/post/:postID", 
{
    title: 'Post',
    templateUrl: '/pages/post.html',
    controller: 'kontroler'
})
.when("/o-nama", 
{
    title: 'Post',
    templateUrl: '/pages/Onama.html',
    controller: 'kontroler'
})
.otherwise({
    redirectTo: '/'
 });

}]);

app.controller('kontroler', ['$scope', '$routeParams', function($scope, $routeParams){
    $scope.templateUrl = '/pages/postovi/'+$routeParams.postID + '.html';
}]);

当我使用/post/VaricellaZoster.html进行路由时,它将在post.html中打开该特定html并调用ng-view ...但是当我直接在Chrome或任何浏览器中键入该url时,它将打开我该html并不能使用ng-view生成整个应用程序...如何解决?

1 个答案:

答案 0 :(得分:0)

添加您的htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

RewriteRule ^(.*) /index.html [NC,L]

这将跳至实际资源(如果有的话),并跳至所有AngularJS路由的index.html。