2013-11-15 175 views
1

我採用了棱角分明的指令與jQuery的數據表,在mRender功能角指令我用下面的代碼來渲染行操作:不渲染動態

數據表mRender功能:

var renderRowActions = function (data, type, row) { 
    //var markup = $('#rowActions').html().replace(/{rowId}/g, row[0]); 
    var markup = '<div row-actions action="delete(" + row[0] + ")" ></div>'; 
    return markup; 
}; 

指令代碼:

app.directive('rowActions', function() { 
    return { 
     restrict: 'A', 
     replace: true, 
     template: '<button data-ng-click="action()"></button>', 
     scope: { 
      action: "&" 
     } 
    }; 
}); 
+0

您是否在將標記添加到dom時使用了$ complie。 $編譯(somehtml)(範圍); – Rob

+0

可能重複[動態加載的輸入框不會黑](http://stackoverflow.com/questions/15438092/dynamically-loaded-input-box-does-nothining) – Stewie

+0

是的,$ compile(markup2)($ scope)返回[object object]和$ compile(markup2)($ scope).html()返回null – user2997115

回答

-1

這個問題n是舊如糞土,但在這裏不用....對於我的指令被稱爲「微調」:

{ 
    className: 'spinner-control', 
    orderable: false, 
    data: null, 
    render: function (data, type, row, meta) { 
     return '<spinner ng-model="accounts['+meta.row+'].alloc" ng-format="percentage" width="75px" step="0.5"></spinner>'; 
    } 
} 

然後,您可以在事後更新jQuery和與編譯元素取代的innerHTML。代碼被寫成「長形」,以使它明白它在做什麼。

$('.spinner-control').each(function(){ 
    var innerHTML = $(this); 
    console.log("InnerHTML", innerHTML); 
    var html = $compile(innerHTML)($scope); 
    console.log("HTML", html); 
    $(this).innerHTML = ''; 
    $(this).append(html); 
});