Gom*_*ket 3 angularjs ng-bind-html
我想动态创建表单。在我的控制器中,我创建了一个字符串
var str = "<input type='text' value='" + $scope.selectedData.code + "' class='form-control' />";
$scope.htmlString = $sce.trustAsHtml(str);
Run Code Online (Sandbox Code Playgroud)
并在我的 html 页面中
<div ng-bind-html="htmlString"></div>
Run Code Online (Sandbox Code Playgroud)
我得到了价值,但没有约束力。我也尝试
var str = "<input type='text' ng-model='" + $scope.selectedData.code + "' class='form-control' />";
$scope.htmlString = $sce.trustAsHtml(str);
Run Code Online (Sandbox Code Playgroud)
也不起作用。谁能知道这如何工作?
小智 5
HTML :
添加指令: compile-template
<div ng-bind-html="htmlString" compile-template></div>
Run Code Online (Sandbox Code Playgroud)
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
});
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2207 次 |
| 最近记录: |