如何在双花括号 {{ }} 中将 ng-include 与 html 文件一起使用
How to use ng-include with an html file in double curly brace notation {{ }}
我有以下代码:
<div ng-repeat="pTabs in child.productTabs" ng-click="toggleProductTab($index)" ng-if="productTabIsActive(pTabs, $index)">
<div ng-repeat="specs in pTab.additionalSpecs">
<p>{{specs.content}}</p> <!--Displays url-->
<div ng-include src = {{specs.content}}></div> <!--My attempt to display the html content-->
</div>
</div>
{{specs.content}}
是一个 html 文件,其中包含我要在页面上使用的 html。当我将它包装在 <p>
标记中时,URL 在我的页面上显示为文本。如何使用 ng-include 将 html 内容添加到我的页面?我试图更改语法,但到目前为止没有任何效果。
非常感谢您抽出宝贵时间。
据我所知,您不必在 angular 指令中使用花括号表示法。使用 ng-include src = specs.content
src 是 ng-include 的 angular 指令部分,不需要花括号,你可以这样做
A) <div ng-include src="scopeObj.prop">
如果 html 文件的字符串名称存储在范围变量或对象中;
B) <div ng-include src="'template.html'">
如果直接在 html 代码中插入字符串(注意双引号和单引号)
另外,如果您需要使用大括号在代码中插入 HTML,您会注意到默认情况下 angular 会在其文本表示中转换任何 html 实体,为此你可以使用
A) <div ng-bind-html="scopeObj.var">
quote doble quote 方法也适用于此
B) 如果你真的想使用花括号插入 html (并且强烈推荐你不要或仅在你确定你的 html 安全时使用)你需要做以下:
将 angular-sanitize 模块导入您的项目并将 'ngSanitize' 注入您的 angular 模块
- 像这样创建一个过滤器:
.filter('unsafe',函数($sce){
return 函数 (val) {
return$sce.trustAsHtml(val);
};
})
- 然后在您的 html 代码中
{{ scopeObj.var |不安全}}
很简单,如下图。你快到了。
<div ng-repeat="pTabs in child.productTabs" ng-click="toggleProductTab($index)" ng-if="productTabIsActive(pTabs, $index)">
<div ng-repeat="specs in pTab.additionalSpecs">
<p>{{specs.content}}</p> <!--Displays url-->
<div ng-include src = "{{specs.content}}"></div>
// My ans- here I'm using src="{{specs.content}}". Note: I'm wrapping curly braces by quotes. I assume specs.content gets required template path. eg. $scope.specs.content='templates/index.html';
</div>
</div>
如果不起作用请告诉我。
我有以下代码:
<div ng-repeat="pTabs in child.productTabs" ng-click="toggleProductTab($index)" ng-if="productTabIsActive(pTabs, $index)">
<div ng-repeat="specs in pTab.additionalSpecs">
<p>{{specs.content}}</p> <!--Displays url-->
<div ng-include src = {{specs.content}}></div> <!--My attempt to display the html content-->
</div>
</div>
{{specs.content}}
是一个 html 文件,其中包含我要在页面上使用的 html。当我将它包装在 <p>
标记中时,URL 在我的页面上显示为文本。如何使用 ng-include 将 html 内容添加到我的页面?我试图更改语法,但到目前为止没有任何效果。
非常感谢您抽出宝贵时间。
据我所知,您不必在 angular 指令中使用花括号表示法。使用 ng-include src = specs.content
src 是 ng-include 的 angular 指令部分,不需要花括号,你可以这样做
A) <div ng-include src="scopeObj.prop">
如果 html 文件的字符串名称存储在范围变量或对象中;
B) <div ng-include src="'template.html'">
如果直接在 html 代码中插入字符串(注意双引号和单引号)
另外,如果您需要使用大括号在代码中插入 HTML,您会注意到默认情况下 angular 会在其文本表示中转换任何 html 实体,为此你可以使用
A) <div ng-bind-html="scopeObj.var">
quote doble quote 方法也适用于此
B) 如果你真的想使用花括号插入 html (并且强烈推荐你不要或仅在你确定你的 html 安全时使用)你需要做以下:
将 angular-sanitize 模块导入您的项目并将 'ngSanitize' 注入您的 angular 模块
- 像这样创建一个过滤器:
.filter('unsafe',函数($sce){ return 函数 (val) { return$sce.trustAsHtml(val); }; })
- 然后在您的 html 代码中
很简单,如下图。你快到了。
<div ng-repeat="pTabs in child.productTabs" ng-click="toggleProductTab($index)" ng-if="productTabIsActive(pTabs, $index)">
<div ng-repeat="specs in pTab.additionalSpecs">
<p>{{specs.content}}</p> <!--Displays url-->
<div ng-include src = "{{specs.content}}"></div>
// My ans- here I'm using src="{{specs.content}}". Note: I'm wrapping curly braces by quotes. I assume specs.content gets required template path. eg. $scope.specs.content='templates/index.html';
</div>
</div>
如果不起作用请告诉我。