Angularjs Route中的外部视图html文件

时间:2017-08-13 11:14:30

标签: javascript angularjs angular-ui-router

请建议如何在少数项目html文件之间包含(使用)常用和共享。 所以来自外部服务器的html文件需要包含在Angularjs路由器中。 这是我所拥有和我想要解决的一个简短的例子。 现在.html在我的项目文件夹中:

 .state('chatbase', {
            url: '/cn={cn}',
             onEnter: function ($stateParams, ParamsShareService) {
               ParamsShareService.updateCnValue($stateParams.cn);

            },
            views: {
                'content@': {
                    templateUrl: 'views/chat_wv1.html',
                    controller: 'ChatController'
                }

            }

             })

我试图让他们像这样工作。所以我可以分享几个项目的结构。

 .state('chatbase', {
            url: '/cn={cn}',
             onEnter: function ($stateParams, ParamsShareService) {
               ParamsShareService.updateCnValue($stateParams.cn);

            },
            views: {
                'content@': {
                    templateUrl: 'https://my-website/views/chat_wv1.html',
                    controller: 'ChatController'
                }

            }

             })

1 个答案:

答案 0 :(得分:1)

我认为你实现它的方式不起作用。

templateUrl支持项目或字符串的显式路径。

HTML是一个包含静态内容的静态文件。但是,从HTTP调用文件意味着使用HTTP协议获取文件内容 - 不同的流量和templateUrl不支持这种方式。

此外,在任何控制器之前加载Angular状态,我相信templateUrl: 'views/chat_wv1.html',就是我们今天所拥有的。

您可以尝试这种方法(但有点复杂):

1)您可以加载一些 teplate.html

views: {
            'content@': {
                templateUrl: 'views/teplate.html',
                controller: 'ChatController'
            }
        }

2)teplate.html将绑定到某个控制器,该控制器将从服务器加载HTML 内容,您可以使用$compile + ng-include来实现您的目标寻找