Angular JS和partials

Par*_*Par 32 partials partial angularjs

是否可以在角度js中嵌入另一个html页面?

如果是这样,怎么办?

这里在他们的教程中,部分未嵌入网页,但它就像不同的页面,你当你点击的项目之一去.(见演示)

mat*_*4pl 32

是的,您可以使用ngInclude指令来完成.

请参阅此处的文档和示例:https://docs.angularjs.org/api/ng/directive/ngInclude

  • 这太可怕了.如果没有调用新请求,是否无法包含部分,例如,作为初始HTML有效负载中的可重用片段? (22认同)
  • @davidgoli,据我所知,角度缓存加载了模板以避免后续请求. (9认同)
  • @davidgoli,ngInclude指令将向后端发出部分请求,但是如果它已经存在于$ templateCache中,它将首先从那里获取它.你可以像这样在$ templateCache中添加HTML字符串:$ templateCache.put('templateId.html','<div>这是模板的内容</ div>'); 这应该允许您向主index.html添加特殊标记,其中包含您要用作模板的HTML,当JS启动时,您可以读取这些元素,将它们作为字符串拉入,并将它们添加到您的$ templateCache所以angular可以渲染它们. (6认同)
  • @davidgoli您可以使用脚本标记在同一页面中定义模板,请参阅http://docs.angularjs.org/api/ng.directive:script (4认同)

Wil*_*ilt 7

如果ng-include不是您所需要的,您可能需要查看angular-ui-router模块.它允许您进行嵌套和并行视图...它非常好,灵活,易于使用且记录良好. https://github.com/angular-ui/ui-router


Tom*_*rae 7

@Wilt是对的,但这是一个更具体的链接和代码示例(来自https://github.com/angular-ui/ui-router/wiki/Quick-Reference#ui-view)

在根模板中:

<div ui-view></div>
<div ui-view="chart"></div> 
<div ui-view="data"></div> 
Run Code Online (Sandbox Code Playgroud)

并在您的app.config函数中

$stateProvider.state("home", {
    views: {
        "": {
            template: "<h1>Some HTML</h1>"
        },
        "chart": {
            templateUrl: "templates/chart.html"
        },
        "data": {
            template: "<data_thing/>"
        }
    }    
})
Run Code Online (Sandbox Code Playgroud)