Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ng bind html不使用我的$scope.variable_Html_Angularjs_Sanitize_Ng Bind Html - Fatal编程技术网

ng bind html不使用我的$scope.variable

ng bind html不使用我的$scope.variable,html,angularjs,sanitize,ng-bind-html,Html,Angularjs,Sanitize,Ng Bind Html,我正在尝试使用ng bind HTML添加类似于动态HTML的内容,但它不适用于$scope变量 这是我的角度代码 1) 我的控制器 $scope.name = "Parshuram" $scope.thisCanBeusedInsideNgBindHtml = $sce.trustAsHtml("<div>{{name}}</div>"); 我的预期产出是 Parshuram 请任何人帮助我,我在这一点上卡住了,$sce不绑定范围变量吗 ng bind html按照

我正在尝试使用ng bind HTML添加类似于动态HTML的内容,但它不适用于$scope变量

这是我的角度代码

1) 我的控制器

$scope.name = "Parshuram"
$scope.thisCanBeusedInsideNgBindHtml = $sce.trustAsHtml("<div>{{name}}</div>");
我的预期产出是

Parshuram

请任何人帮助我,我在这一点上卡住了,$sce不绑定范围变量吗

ng bind html
按照tin上的说明执行:它绑定html。它不会将角度模板代码绑定到dom中

您需要这样做:

$scope.thisCanBeusedInsideNgBindHtml = 
    $sce.trustAsHtml("<div>"+$sanitize(name)+"</div>");
$scope.this可用于SidengBindHTML=
$sce.trustAsHtml(“+$sanitize(name)+”);
为此,您需要从javascript
angular sanitize.js
中包含模块
ngSanitize
。看

如果您想插入一些包含角度指令的html,那么您应该编写自己的自定义指令 {{name}}
HTML代码中将使用{var}}符号来计算该变量。

我在这里创建了一个工作plnkr:

问题是ng bind html没有绑定到范围。 您应该手动编译内容

一个有效且可重用的解决方案应该是创建一个指令,而不使用任何外部模块

function compileTemplate($compile, $parse){
    return {
        link: function(scope, element, attr){
            var parsed = $parse(attr.ngBindHtml);
            function getStringValue() { return (parsed(scope) || '').toString(); }    
            scope.$watch(getStringValue, function() {
                $compile(element, null, -9999)(scope);  
             });
        }
    }
  }




<div ng-app="mymodule" ng-controller="myModuleController">
    <div ng-bind-html="thisCanBeusedInsideNgBindHtml" compile-template></div> 
</div>
函数compileTemplate($compile,$parse){
返回{
链接:功能(范围、元素、属性){
var parsed=$parse(attr.ngBindHtml);
函数getStringValue()
作用域.$watch(getStringValue,函数(){
$compile(元素,null,-9999)(范围);
});
}
}
}
您可以执行以下操作:

$scope.thisCanBeusedInsideNgBindHtml = $sce.trustAsHtml('<div ng-bind="name"></div>');
$scope.this可用于sidengbindhtml=$sce.trustAsHtml(“”);

对不起,我再回答一个问题

如果你有

$scope.thisCanBeusedInsideNgBindHtml = $sce.trustAsHtml("<div>{{name}}</div>");
$scope.thisCanedInSidengBindHTML=$sce.trustAsHtml(“{{name}”);
那你就可以了

var str = "<div>{{name}}</div>";
var output = str.replace('{{name}}', $scope.name);
var str=“{{name}}”;
var output=str.replace({{name}}',$scope.name);


这似乎是唯一的选择

我需要为它添加SuniTix.M.js吗?你需要角度消毒,但实际上你应该考虑是否可以用自定义指令(或组件)来做你需要的。我正在从我的服务器发送一个字符串,所以我不喜欢指令不我不想在html中使用我的html字符串来自我的服务器,我想用htmlNo绑定它对我也不起作用仍然给{{name}}我在我的答案中添加了一个工作plnkr从你的代码开始,但是非常感谢..非常好的答案,但是如果你绑定到的html中有一个指令,有没有一种简单的方法可以递归地执行呢?e、 g.其中myhtml=“”只需更改maxPriority值即可生成而不是编译并正确呈现内部指令。我的问题是如何将我的作用域变量与$sce html bind绑定请检查我的问题我希望我的作用域变量绑定,因为我正在从服务器发送字符串并将其与html绑定,如果有任何其他方式,我可以发送一些字符串并在范围变量更改时更改我的名称,但我想发送字符串htmlI阅读您时遇到困难很抱歉,我编辑了我的问题以满足您的需要,请参阅最后一部分。我现在完全编辑了我的问题,这样我们就在同一页上了!然后您可以尝试使用
$scope.thisCanedInSidengBindHTML=$sce.trustAsHtml(“”)?抱歉,我不能在这里使用replace,我的html字符串可以是任何东西,例如,假设这个“NameAge{{tr.name}}{{tr.age}},所以我不能替换每个变量,如果您从服务器获取html,并且可以让服务器返回一个与您想要的html完全相同的响应,那么只需使用
ng include=“///theserver/somepage'“
这将获取html并将其作为模板包含。您能否详细解释这是我的服务,返回html字符串$http.get('(response){console.log(response.data);});试试这个:
$scope.template='//localhost:22475/api/mymodule'
然后在html
@Duncan中,它非常简单,谢谢你,它成功了..有一个问题我能给那个API一个查询参数吗//localhost:22475/api/mymodule?dt=4
$scope.thisCanBeusedInsideNgBindHtml = $sce.trustAsHtml('<div ng-bind="name"></div>');
$scope.thisCanBeusedInsideNgBindHtml = $sce.trustAsHtml("<div>{{name}}</div>");
var str = "<div>{{name}}</div>";
var output = str.replace('{{name}}', $scope.name);