问题
Is it possible to bind data of scope variable to a html that is about to bind as ng-bind-html?
ie, I have a
html =\"<div>{{caption}}</div>\";
and my angular template look like,
<div ng-bind-html=\"html\"></div>
the value of scope variable caption
is set in angular controller.
So, I want to bind data in {{caption}}
.
Thanks in advance..
回答1:
You should use $interpolate not $compile.
Write controller like this:
angular.module('app', ['ngSanitize'])
.controller('MyCtrl', ['$scope', '$interpolate', function($scope, $interpolate){
$scope.caption = 'My Caption';
$scope.html = $interpolate('<div>{{caption}}</div>')($scope);
});
Then write HTML like this:
<div ng-controller="MyCtrl">
<div ng-bind-html="html"></div>
</div>
回答2:
You need to compile your HTML snippet, but it is recommended to do that inside the directive.
app.controller('MyCtrl', function($compile){
$scope.caption = 'My Caption';
$scope.html = $compile('<div>{{caption}}</div>')($scope);
});
<div ng-bind-html="html"></div>
回答3:
What about?
html = '<div ng-bind="caption"></div>';
来源:https://stackoverflow.com/questions/20796102/angularjs-data-bind-in-ng-bind-html