当前位置: 首页 > 面试题库 >

使用ng-bind-html和$ sce.trustAsHtml创建具有ng-model绑定的字符串

孙洋
2023-03-14
问题内容

我想动态创建表单。在控制器内部,我创建了一个字符串

var str = "<input type='text' value='" + $scope.selectedData.code + "' class='form-control' />";
$scope.htmlString = $sce.trustAsHtml(str);

并在我的html页面中

<div ng-bind-html="htmlString"></div>

我得到的价值,但没有约束力。我也尝试

var str = "<input type='text' ng-model='" + $scope.selectedData.code + "' class='form-control' />";
$scope.htmlString = $sce.trustAsHtml(str);

也行不通。谁能知道这怎么工作?


问题答案:

HTML:

添加指令: compile-template

<div ng-bind-html="htmlString" compile-template></div>

JS:

angular.module('ngApp', ['ngSanitize'])
.controller('controller1', ['$scope','$sce', function($scope, $sce) {
    var str = "<input type='text' ng-model='" + $scope.selectedData.code + "' class='form-control' />";
    $scope.htmlString = $sce.trustAsHtml(str);
}])
.directive('compileTemplate', function($compile, $parse){
    return {
        link: function(scope, element, attr){
            var parsed = $parse(attr.ngBindHtml);
            function getStringValue() {
                return (parsed(scope) || '').toString();
            }

            // Recompile if the template changes
            scope.$watch(getStringValue, function() {
                $compile(element, null, -9999)(scope);  // The -9999 makes it skip directives so that we do not recompile ourselves
            });
        }
    }
});


 类似资料:
  • 问题内容: 我需要一些使用ng-bind-html创建的ng-model的帮助。我在服务器中有一个JSON文件,其中有一些html和一些类似的输入: .json 然后,在我的HTML文件中,我会看到以下内容: 在我的Angular控制器中,我有一个JSON文件的ajax调用: 控制器: 填充了html,但是我不能将$ watch用于通过这种方法生成的模型(q)。 我如何监视以此方式创建的模型的变化

  • 问题内容: 目前,我正在学习AngularJS和我难以理解的区别和。 谁能告诉我它们的区别以及何时应使用另一种? 问题答案: ng-bind 具有单向数据绑定($ scope->视图)。它有一个快捷方式 ,用于显示插入到html中的范围值,其中是变量名。 ng-model 用于放置在表单元素中,并具有双向数据绑定($ scope-> view and view-> $ scope),例如。

  • 问题内容: 我有这个reprohttp://embed.plnkr.co/nVCmukG5abpi1Y4ZHkrq,当我单击“ Title3”并在文本框中输入一个值时显示,尽管输入的值显示在UI中,当我单击“单击”按钮时,什么也没有绑定到范围属性$ scope.test。 我不知道ng-switch有什么问题,或者我做错了什么。帮助表示赞赏!!! http://embed.plnkr.co/nVC

  • 问题内容: 我正在尝试将$ sce.trustAsHtml()与ng- repeat中的对象属性一起使用。结果是HTML完全空白。不过,使用ngSanitize可以正确输出HTML。 顺便说一下,我正在使用AngularJS v1.3.0-beta.3。不知道是否有错误或我做错了什么。 问题答案: 您不能在表达式中使用(除非是的属性),因为表达式是在的上下文中求值的。 最干净的方法是使用。 第二种

  • 问题内容: 我想知道ng-bind-html和bind-html-compile指令之间的区别。例如我给 到ng-bind-html,这会剔除bind-html-compile所没有的样式。我可以知道何时应该使用每个指令。谢谢。 问题答案: bind-html-compile 不是标准的Angular指令,它带有模块https://github.com/incuna/angular- bind-h

  • 问题内容: 我正在尝试创建一个指令,该指令将创建与创建指令的元素具有相同ng-model的输入字段。 到目前为止,这是我想到的: 的HTML 的JavaScript 但是,我不确定这是处理这种情况的正确方法,并且存在一个错误,即我的控件未使用ng-model target字段的值初始化。 这是上面代码的简称:http ://plnkr.co/edit/IvrDbJ 处理此问题的正确方法是什么? 编