У меня есть фрагмент html, который поступает из базы данных mongo, полученной службой angular. Затем этот html-фрагмент обрабатывается на моей странице с помощью директивы ng-bind-html
от ngSanitize. Мне интересно, как я могу привязать выражение внутри фрагмента html к странице, чтобы при привязке html выражение привязки выполнялось внутри фрагмента. Например, вот мой div, к которому будет привязан мой html-фрагмент:
<div ng-bind-html="middle_snippet">
</div>
и вот фактический фрагмент, который извлекается из службы.
<p>WHY HERRRRO!!! {{myBinding}}</p>
И вот мой простой контроллер:
var middleMainContent = $Content.content({slug: "home-bottom-middle"
}, function () {
console.log(JSON.stringify(middleMainContent));
$scope.middle_snippet = middleMainContent.response.content.snippet;
$scope.myBinding = 'VERY NICE BINDING';
});
Так что на самом деле мои ожидаемые результаты были бы html:
WHY HERRRRO!!! VERY NICE BINDING
Однако я получаю оригинальный html с фигурными скобками. Любые идеи помогут, поскольку я стою здесь, пытаясь заставить это работать.
ОБНОВЛЕНИЕ: Итак, прочитав о службе компиляции и используя их с директивами, как упоминал Чандермани, я одновременно просветлен и сбит с толку. Согласно команде AngularJS, лучший способ при использовании $ compile - использовать его в объекте определения директивы (DDO), как указано здесь http://docs.angularjs.org/api/ng/service/ $ compile. Итак, я создал DDO, однако меня смущает то, что входит в метод compile: для DDO. Вот что у меня есть на данный момент:
var myModule = angular.module('html_compile');
myModule.directive('html_compiler', function factory(injectables) {
var directiveDefinitionObject = {
priority: 0,
template: $scope.snippet,
replace: true,
transclude: false,
restrict: 'E',
scope: false,
compile: function compile(tElement, tAttrs) {
return {
pre: function preLink(scope, iElement, iAttrs, controller) { ... },
post: function postLink(scope, iElement, iAttrs, controller) { ... }
}
// or
// return function postLink( ... ) { ... }
},
// or
// link: {
// pre: function preLink(scope, iElement, iAttrs, controller) { ... },
// post: function postLink(scope, iElement, iAttrs, controller) { ... }
// }
// or
// link: function postLink( ... ) { ... }
};
return directiveDefinitionObject;
});
ui-view
html, автоматически компилируется в пользовательском интерфейсе. - person Chandermani   schedule 12.03.2014