Как и DOM, директива "cur" изменит DOM с помощью jQuery
, но не сохранит ее. Если я хочу вернуть DOM, я могу скомпилировать и заменить DOM. Код выглядит так: $('#main').html($compile($('#main').html())($scope))
Но есть ли лучшие способы напрямую скомпилировать DOM?
<div id="main">
<div class="fl item" ng-class="cur == 1? 'cur':''" cur>111</div>
<div class="fl item" ng-class="cur == 2? 'cur':''" cur>222</div>
<div class="fl item" ng-class="cur == 3? 'cur':''" cur>333</div>
<div class="fl item" ng-class="cur == 4? 'cur':''" cur>444</div>
<textarea name="" id="msg" cols="30" rows="10" ng-bind="msg">
</textarea>
</div>
app.directive('cur', function(){
return function(scope,ele){
ele.click(function(){
ele.addClass('cur').siblings().removeClass('cur');
})
}
});
Вы можете использовать функцию компиляции в своей директиве:
function compile(tElement, tAttrs, transclude) { ... }