scope.$watch("assignments", function (value) {//I change here
var val = value || null;
if (val)
element.dataTable({"bDestroy": true});
});
}
希望对您有帮助
首先,正确处理渲染的地方是指令。我的建议是通过像这样的指令来包装DOM操作jQuery插件。
我遇到了同样的问题,并提出了这个代码段。它使用$watch
和$evalAsync
来确保您的代码在ng-repeat
已解决诸如指令之类的指令以及诸如模板之类的模板之后运行{{ value }}
。
app.directive('name', function() {
return {
link: function($scope, element, attrs) {
// Trigger when number of children changes,
// including by directives like ng-repeat
var watch = $scope.$watch(function() {
return element.children().length;
}, function() {
// Wait for templates to render
$scope.$evalAsync(function() {
// Finally, directives are evaluated
// and templates are renderer here
var children = element.children();
console.log(children);
});
});
},
};
});