diff --git a/dist/angular-datatables.js b/dist/angular-datatables.js
index c07cc93ca..04567b485 100644
--- a/dist/angular-datatables.js
+++ b/dist/angular-datatables.js
@@ -773,7 +773,7 @@ function dtRendererService(DTLoadingTemplate) {
}
function postRender(options, result) {
- plugins.forEach(function(plugin) {
+ angular.forEach(plugins, function(plugin) {
if (angular.isFunction(plugin.postRender)) {
plugin.postRender(options, result);
}
@@ -781,7 +781,7 @@ function dtRendererService(DTLoadingTemplate) {
}
function preRender(options) {
- plugins.forEach(function(plugin) {
+ angular.forEach(plugins, function(plugin) {
if (angular.isFunction(plugin.preRender)) {
plugin.preRender(options);
}
@@ -1231,7 +1231,7 @@ function dtPropertyUtil($q) {
} else {
resolvedObj = angular.extend(resolvedObj, obj);
for (var prop in resolvedObj) {
- if (resolvedObj.hasOwnProperty(prop) && excludedProp.indexOf(prop) === -1) {
+ if (resolvedObj.hasOwnProperty(prop) && $.inArray(prop, excludedProp) === -1) {
if (angular.isArray(resolvedObj[prop])) {
promises.push(resolveArrayPromises(resolvedObj[prop]));
} else {
@@ -1242,7 +1242,7 @@ function dtPropertyUtil($q) {
$q.all(promises).then(function(result) {
var index = 0;
for (var prop in resolvedObj) {
- if (resolvedObj.hasOwnProperty(prop) && excludedProp.indexOf(prop) === -1) {
+ if (resolvedObj.hasOwnProperty(prop) && $.inArray(prop, excludedProp) === -1) {
resolvedObj[prop] = result[index++];
}
}
@@ -1264,7 +1264,7 @@ function dtPropertyUtil($q) {
if (!angular.isArray(array)) {
defer.resolve(array);
} else {
- array.forEach(function(item) {
+ angular.forEach(array, function(item) {
if (angular.isObject(item)) {
promises.push(resolveObjectPromises(item));
} else {
@@ -1272,7 +1272,7 @@ function dtPropertyUtil($q) {
}
});
$q.all(promises).then(function(result) {
- result.forEach(function(item) {
+ angular.forEach(result, function(item) {
resolveArray.push(item);
});
defer.resolve(resolveArray);
diff --git a/dist/angular-datatables.min.js b/dist/angular-datatables.min.js
index 88f58f04f..2e59c113b 100644
--- a/dist/angular-datatables.min.js
+++ b/dist/angular-datatables.min.js
@@ -3,4 +3,4 @@
* https://github.com/l-lin/angular-datatables
* License: MIT
*/
-!function(a,b,c,d){"use strict";function e(a,b,c,e,f){function g(a){var b=a[0].innerHTML;return function(a,c,f,g){function h(a,d){a!==d&&g.render(c,g.buildOptionsPromise(),b)}var i=f.dtDisableDeepWatchers?"$watchCollection":"$watch";d.forEach(["dtColumns","dtColumnDefs","dtOptions"],function(b){a[i].call(a,b,h,!0)}),e.showLoading(c),g.render(c,g.buildOptionsPromise(),b)}}function h(g){function h(){var c=a.defer();return a.all([a.when(g.dtOptions),a.when(g.dtColumns),a.when(g.dtColumnDefs)]).then(function(c){var e=c[0],g=c[1],h=c[2];f.deleteProperty(e,"$promise"),f.deleteProperty(g,"$promise"),f.deleteProperty(h,"$promise");var i;if(d.isDefined(e)&&(i={},d.extend(i,e),d.isArray(g)&&(i.aoColumns=g),d.isArray(h)&&(i.aoColumnDefs=h),i.language&&i.language.url)){var j=a.defer();b.get(i.language.url).success(function(a){j.resolve(a)}),i.language=j.promise}return f.resolveObjectPromises(i,["data","aaData","fnPromise"])}).then(function(a){c.resolve(a)}),c.promise}function i(a,b,d){b.then(function(b){e.preRender(b);var f=g.datatable&&"ng"===g.datatable;j&&j._renderer?j._renderer.withOptions(b).render(a,g,d).then(function(a){j=a}):c.fromOptions(b,f).render(a,g,d).then(function(a){j=a})})}var j,k=this;k.buildOptionsPromise=h,k.render=i}return g.$inject=["tElm"],h.$inject=["$scope"],{restrict:"A",scope:{dtOptions:"=",dtColumns:"=",dtColumnDefs:"=",datatable:"@"},compile:g,controller:h}}function f(){var a={hasOverrideDom:!1,withOption:function(a,b){return d.isString(a)&&(this[a]=b),this},withSource:function(a){return this.ajax=a,this},withDataProp:function(a){return this.sAjaxDataProp=a,this},withFnServerData:function(a){if(!d.isFunction(a))throw new Error("The parameter must be a function");return this.fnServerData=a,this},withPaginationType:function(a){if(!d.isString(a))throw new Error("The pagination type must be provided");return this.sPaginationType=a,this},withLanguage:function(a){return this.language=a,this},withLanguageSource:function(a){return this.withLanguage({url:a})},withDisplayLength:function(a){return this.iDisplayLength=a,this},withFnPromise:function(a){return this.fnPromise=a,this},withDOM:function(a){return this.dom=a,this}};return{newOptions:function(){return Object.create(a)},fromSource:function(b){var c=Object.create(a);return c.ajax=b,c},fromFnPromise:function(b){var c=Object.create(a);return c.fnPromise=b,c}}}function g(){var a={withOption:function(a,b){return d.isString(a)&&(this[a]=b),this},withTitle:function(a){return this.sTitle=a,this},withClass:function(a){return this.sClass=a,this},notVisible:function(){return this.bVisible=!1,this},notSortable:function(){return this.bSortable=!1,this},renderWith:function(a){return this.mRender=a,this}};return{newColumn:function(b,c){if(d.isUndefined(b))throw new Error('The parameter "mData" is not defined!');var e=Object.create(a);return e.mData=b,e.sTitle=c||"",e},DTColumn:a}}function h(a){return{newColumnDef:function(b){if(d.isUndefined(b))throw new Error('The parameter "targets" must be defined! See https://datatables.net/reference/option/columnDefs.targets');var c=Object.create(a.DTColumn);return c.aTargets=d.isArray(b)?b:[b],c}}}function i(){return{html:'
Loading...
'}}function j(a){function b(a,b){return a.id=b.id,a.DataTable=b.DataTable,a.dataTable=b.dataTable,e[a.id]=a,f&&f.resolve(a),h&&h.resolve(e),a}function c(){var b=a.defer();return g||(f=a.defer(),g=f.promise),g.then(function(a){b.resolve(a),f=null,g=null}),b.promise}function d(){var b=a.defer();return i||(h=a.defer(),i=h.promise),i.then(function(a){b.resolve(a),h=null,i=null}),b.promise}var e={},f=null,g=null,h=null,i=null;return{register:b,getLast:c,getList:d}}function k(){function a(a){var b=Object.create(e);return b._renderer=a,b}function b(){this._renderer.reloadData()}function c(a){this._renderer.changeData(a)}function d(){this._renderer.rerender()}var e={reloadData:b,changeData:c,rerender:d};return{newDTInstance:a}}function l(b){c.fn.DataTable.Api&&c.fn.DataTable.Api.register("ngDestroy()",function(d){return d=d||!1,this.iterator("table",function(e){var f,g=e.nTableWrapper.parentNode,h=e.oClasses,i=e.nTable,j=e.nTBody,k=e.nTHead,l=e.nTFoot,m=c(i),n=c(j),o=c(e.nTableWrapper),p=c.map(e.aoData,function(a){return a.nTr});if(e.bDestroying=!0,c.fn.DataTable.ext.internal._fnCallbackFire(e,"aoDestroyCallback","destroy",[e]),d||new c.fn.DataTable.Api(e).columns().visible(!0),o.unbind(".DT").find(":not(tbody *)").unbind(".DT"),c(a).unbind(".DT-"+e.sInstance),i!==k.parentNode&&(m.children("thead").detach(),m.append(k)),l&&i!==l.parentNode&&(m.children("tfoot").detach(),m.append(l)),m.detach(),o.detach(),e.aaSorting=[],e.aaSortingFixed=[],c.fn.DataTable.ext.internal._fnSortingClasses(e),c(p).removeClass(e.asStripeClasses.join(" ")),c("th, td",k).removeClass(h.sSortable+" "+h.sSortableAsc+" "+h.sSortableDesc+" "+h.sSortableNone),e.bJUI&&(c("th span."+h.sSortIcon+", td span."+h.sSortIcon,k).detach(),c("th, td",k).each(function(){var a=c("div."+h.sSortJUIWrapper,this);c(this).append(a.contents()),a.detach()})),!d&&g)try{g.insertBefore(i,e.nTableReinsertBefore)}catch(q){b.warn(q),g.appendChild(i)}m.css("width",e.sDestroyWidth).removeClass(h.sTable),f=e.asDestroyStripes.length,f&&n.children().each(function(a){c(this).addClass(e.asDestroyStripes[a%f])});var r=c.inArray(e,c.fn.DataTable.settings);-1!==r&&c.fn.DataTable.settings.splice(r,1)})})}function m(){function a(a){return c.extend(c.fn.dataTable.defaults,{oLanguage:{sUrl:a}}),f}function b(a){return c.extend(!0,c.fn.dataTable.defaults,{oLanguage:a}),f}function d(a){return c.extend(c.fn.dataTable.defaults,{iDisplayLength:a}),f}function e(a){return f.bootstrapOptions=a,f}var f={bootstrapOptions:{},setLanguageSource:a,setLanguage:b,setDisplayLength:d,setBootstrapOptions:e};return f}function n(a){function b(){return l}function e(a){a.after(l),a.hide(),l.show()}function f(a){a.show(),l.hide()}function g(a,b){var d="#"+a.attr("id");c.fn.dataTable.isDataTable(d)&&(b.destroy=!0);var e=a.DataTable(b),f=a.dataTable(),g={id:a.attr("id"),DataTable:e,dataTable:f};return j(b,g),g}function h(a,b){return n.hideLoading(a),n.renderDataTable(a,b)}function i(a){m.push(a)}function j(a,b){m.forEach(function(c){d.isFunction(c.postRender)&&c.postRender(a,b)})}function k(a){m.forEach(function(b){d.isFunction(b.preRender)&&b.preRender(a)})}var l=d.element(a.html),m=[],n={getLoadingElem:b,showLoading:e,hideLoading:f,renderDataTable:g,hideLoadingAndRenderDataTable:h,registerPlugin:i,postRender:j,preRender:k};return n}function o(){return{withOptions:function(a){return this.options=a,this}}}function p(a,b,c,d,e){function f(f){function g(b){l=b;var f=d.newDTInstance(m),g=c.hideLoadingAndRenderDataTable(b,m.options);return k=g.DataTable,a.when(e.register(f,g))}function h(){}function i(){}function j(){k.destroy(),c.showLoading(l),g(l)}var k,l,m=Object.create(b);return m.name="DTDefaultRenderer",m.options=f,m.render=g,m.reloadData=h,m.changeData=i,m.rerender=j,m}return{create:f}}function q(a,b,c,d,e,f,g,h){function i(i){function j(a,c,e){o=e,q=a,r=c.$parent,s=h.newDTInstance(t);var i=b.defer(),j=a.find("tbody").html(),k=j.match(/^\s*.+?\s+in\s+(\S*)\s*/),l=k[1];if(!k)throw new Error('Expected expression in form of "_item_ in _collection_[ track by _id_]" but got "{0}".',j);var m=!1;return r.$watchCollection(l,function(){p&&m&&n(),d(function(){m=!0;var a=f.hideLoadingAndRenderDataTable(q,t.options);p=a.DataTable,i.resolve(g.register(s,a))},0,!1)},!0),i.promise}function k(){a.warn("The Angular Renderer does not support reloading data. You need to do it directly on your model")}function l(){a.warn("The Angular Renderer does not support changing the data. You need to change your model directly.")}function m(){n(),f.showLoading(q),d(function(){var a=f.hideLoadingAndRenderDataTable(q,t.options);p=a.DataTable,s=g.register(s,a)},0,!1)}function n(){p.ngDestroy(),q.html(o),c(q.contents())(r)}var o,p,q,r,s,t=Object.create(e);return t.name="DTNGRenderer",t.options=i,t.render=j,t.reloadData=k,t.changeData=l,t.rerender=m,t}return{create:i}}function r(a,b,c,e,f,g,h){function i(i){function j(b){var c=a.defer();return t=h.newDTInstance(v),s=b,n(v.options.fnPromise,f.renderDataTable).then(function(a){r=a.DataTable,c.resolve(g.register(t,a))}),c.promise}function k(){d.isFunction(v.options.fnPromise)?n(v.options.fnPromise,q):c.warn("In order to use the reloadData functionality with a Promise renderer, you need to provide a function that returns a promise.")}function l(a){v.options.fnPromise=a,n(v.options.fnPromise,q)}function m(){r.destroy(),f.showLoading(s),j(s)}function n(b,c){var e=a.defer();if(d.isUndefined(b))throw new Error("You must provide a promise or a function that returns a promise!");return u?u.then(function(){e.resolve(o(b,c))}):e.resolve(o(b,c)),e.promise}function o(b,c){var e=a.defer();return u=d.isFunction(b)?b():b,u.then(function(a){var b=a;v.options.sAjaxDataProp&&(b=a[v.options.sAjaxDataProp]),u=null,e.resolve(p(v.options,s,b,c))}),e.promise}function p(c,d,e,g){var h=a.defer();return delete e.$promise,c.aaData=e,b(function(){f.hideLoading(d),c.bDestroy=!0,h.resolve(g(d,c))},0,!1),h.promise}function q(){return r.clear(),r.rows.add(i.aaData).draw(),{id:t.id,DataTable:t.DataTable,dataTable:t.dataTable}}var r,s,t,u=null,v=Object.create(e);return v.name="DTPromiseRenderer",v.options=i,v.render=j,v.reloadData=k,v.changeData=l,v.rerender=m,v}return{create:i}}function s(a,b,c,e,f,g,h){function i(i){function j(b){q=b;var c=a.defer(),e=h.newDTInstance(r);return d.isUndefined(r.options.sAjaxDataProp)&&(r.options.sAjaxDataProp=f.sAjaxDataProp),d.isUndefined(r.options.aoColumns)&&(r.options.aoColumns=f.aoColumns),n(r.options,b).then(function(a){p=a.DataTable,c.resolve(g.register(e,a))}),c.promise}function k(){if(p){var a=r.options.ajax.url||r.options.ajax;p.ajax.url(a).load()}}function l(a){r.options.ajax=a,r.reloadData()}function m(){p.destroy(),e.showLoading(q),j(q)}function n(c,d){var f=a.defer();return c.bDestroy=!0,e.hideLoading(d),o(c)?b(function(){f.resolve(e.renderDataTable(d,c))},0,!1):f.resolve(e.renderDataTable(d,c)),f.promise}function o(a){return d.isDefined(a)&&d.isDefined(a.dom)?a.dom.indexOf("S")>=0:!1}var p,q,r=Object.create(c);return r.name="DTAjaxRenderer",r.options=i,r.render=j,r.reloadData=k,r.changeData=l,r.rerender=m,r}return{create:i}}function t(a,b,c,e){function f(f,g){return g?b.create(f):d.isDefined(f)?d.isDefined(f.fnPromise)&&null!==f.fnPromise?c.create(f):d.isDefined(f.ajax)&&null!==f.ajax||d.isDefined(f.ajax)&&null!==f.ajax?e.create(f):a.create(f):a.create()}return{fromOptions:f}}function u(a){function b(a,c){var e=d.copy(a);if((d.isUndefined(e)||null===e)&&(e={}),d.isUndefined(c)||null===c)return e;if(d.isObject(c))for(var f in c)c.hasOwnProperty(f)&&(e[f]=b(e[f],c[f]));else e=d.copy(c);return e}function c(a,b){d.isObject(a)&&delete a[b]}function e(b,c){var e=a.defer(),g=[],h={},i=c||[];if(!d.isObject(b)||d.isArray(b))e.resolve(b);else{h=d.extend(h,b);for(var j in h)h.hasOwnProperty(j)&&-1===i.indexOf(j)&&g.push(d.isArray(h[j])?f(h[j]):a.when(h[j]));a.all(g).then(function(a){var b=0;for(var c in h)h.hasOwnProperty(c)&&-1===i.indexOf(c)&&(h[c]=a[b++]);e.resolve(h)})}return e.promise}function f(b){var c=a.defer(),f=[],g=[];return d.isArray(b)?(b.forEach(function(b){f.push(d.isObject(b)?e(b):a.when(b))}),a.all(f).then(function(a){a.forEach(function(a){g.push(a)}),c.resolve(g)})):c.resolve(b),c.promise}return{overrideProperties:b,deleteProperty:c,resolveObjectPromises:e,resolveArrayPromises:f}}d.module("datatables.directive",["datatables.instances","datatables.renderer","datatables.options","datatables.util"]).directive("datatable",e),e.$inject=["$q","$http","DTRendererFactory","DTRendererService","DTPropertyUtil"],d.module("datatables.factory",[]).factory("DTOptionsBuilder",f).factory("DTColumnBuilder",g).factory("DTColumnDefBuilder",h).factory("DTLoadingTemplate",i),h.$inject=["DTColumnBuilder"],d.module("datatables.instances",[]).factory("DTInstances",j).factory("DTInstanceFactory",k),j.$inject=["$q"],d.module("datatables",["datatables.directive","datatables.factory"]).run(l),l.$inject=["$log"],d.module("datatables.options",[]).constant("DT_DEFAULT_OPTIONS",{dom:"lfrtip",sAjaxDataProp:"",aoColumns:[]}).service("DTDefaultOptions",m),d.module("datatables.renderer",["datatables.instances","datatables.factory","datatables.options","datatables.instances"]).factory("DTRendererService",n).factory("DTRenderer",o).factory("DTDefaultRenderer",p).factory("DTNGRenderer",q).factory("DTPromiseRenderer",r).factory("DTAjaxRenderer",s).factory("DTRendererFactory",t),n.$inject=["DTLoadingTemplate"],p.$inject=["$q","DTRenderer","DTRendererService","DTInstanceFactory","DTInstances"],q.$inject=["$log","$q","$compile","$timeout","DTRenderer","DTRendererService","DTInstances","DTInstanceFactory"],r.$inject=["$q","$timeout","$log","DTRenderer","DTRendererService","DTInstances","DTInstanceFactory"],s.$inject=["$q","$timeout","DTRenderer","DTRendererService","DT_DEFAULT_OPTIONS","DTInstances","DTInstanceFactory"],t.$inject=["DTDefaultRenderer","DTNGRenderer","DTPromiseRenderer","DTAjaxRenderer"],d.module("datatables.util",[]).factory("DTPropertyUtil",u),u.$inject=["$q"]}(window,document,jQuery,angular);
\ No newline at end of file
+!function(a,b,c,d){"use strict";function e(a,b,c,e,f){function g(a){var b=a[0].innerHTML;return function(a,c,f,g){function h(a,d){a!==d&&g.render(c,g.buildOptionsPromise(),b)}var i=f.dtDisableDeepWatchers?"$watchCollection":"$watch";d.forEach(["dtColumns","dtColumnDefs","dtOptions"],function(b){a[i].call(a,b,h,!0)}),e.showLoading(c),g.render(c,g.buildOptionsPromise(),b)}}function h(g){function h(){var c=a.defer();return a.all([a.when(g.dtOptions),a.when(g.dtColumns),a.when(g.dtColumnDefs)]).then(function(c){var e=c[0],g=c[1],h=c[2];f.deleteProperty(e,"$promise"),f.deleteProperty(g,"$promise"),f.deleteProperty(h,"$promise");var i;if(d.isDefined(e)&&(i={},d.extend(i,e),d.isArray(g)&&(i.aoColumns=g),d.isArray(h)&&(i.aoColumnDefs=h),i.language&&i.language.url)){var j=a.defer();b.get(i.language.url).success(function(a){j.resolve(a)}),i.language=j.promise}return f.resolveObjectPromises(i,["data","aaData","fnPromise"])}).then(function(a){c.resolve(a)}),c.promise}function i(a,b,d){b.then(function(b){e.preRender(b);var f=g.datatable&&"ng"===g.datatable;j&&j._renderer?j._renderer.withOptions(b).render(a,g,d).then(function(a){j=a}):c.fromOptions(b,f).render(a,g,d).then(function(a){j=a})})}var j,k=this;k.buildOptionsPromise=h,k.render=i}return g.$inject=["tElm"],h.$inject=["$scope"],{restrict:"A",scope:{dtOptions:"=",dtColumns:"=",dtColumnDefs:"=",datatable:"@"},compile:g,controller:h}}function f(){var a={hasOverrideDom:!1,withOption:function(a,b){return d.isString(a)&&(this[a]=b),this},withSource:function(a){return this.ajax=a,this},withDataProp:function(a){return this.sAjaxDataProp=a,this},withFnServerData:function(a){if(!d.isFunction(a))throw new Error("The parameter must be a function");return this.fnServerData=a,this},withPaginationType:function(a){if(!d.isString(a))throw new Error("The pagination type must be provided");return this.sPaginationType=a,this},withLanguage:function(a){return this.language=a,this},withLanguageSource:function(a){return this.withLanguage({url:a})},withDisplayLength:function(a){return this.iDisplayLength=a,this},withFnPromise:function(a){return this.fnPromise=a,this},withDOM:function(a){return this.dom=a,this}};return{newOptions:function(){return Object.create(a)},fromSource:function(b){var c=Object.create(a);return c.ajax=b,c},fromFnPromise:function(b){var c=Object.create(a);return c.fnPromise=b,c}}}function g(){var a={withOption:function(a,b){return d.isString(a)&&(this[a]=b),this},withTitle:function(a){return this.sTitle=a,this},withClass:function(a){return this.sClass=a,this},notVisible:function(){return this.bVisible=!1,this},notSortable:function(){return this.bSortable=!1,this},renderWith:function(a){return this.mRender=a,this}};return{newColumn:function(b,c){if(d.isUndefined(b))throw new Error('The parameter "mData" is not defined!');var e=Object.create(a);return e.mData=b,e.sTitle=c||"",e},DTColumn:a}}function h(a){return{newColumnDef:function(b){if(d.isUndefined(b))throw new Error('The parameter "targets" must be defined! See https://datatables.net/reference/option/columnDefs.targets');var c=Object.create(a.DTColumn);return c.aTargets=d.isArray(b)?b:[b],c}}}function i(){return{html:'Loading...
'}}function j(a){function b(a,b){return a.id=b.id,a.DataTable=b.DataTable,a.dataTable=b.dataTable,e[a.id]=a,f&&f.resolve(a),h&&h.resolve(e),a}function c(){var b=a.defer();return g||(f=a.defer(),g=f.promise),g.then(function(a){b.resolve(a),f=null,g=null}),b.promise}function d(){var b=a.defer();return i||(h=a.defer(),i=h.promise),i.then(function(a){b.resolve(a),h=null,i=null}),b.promise}var e={},f=null,g=null,h=null,i=null;return{register:b,getLast:c,getList:d}}function k(){function a(a){var b=Object.create(e);return b._renderer=a,b}function b(){this._renderer.reloadData()}function c(a){this._renderer.changeData(a)}function d(){this._renderer.rerender()}var e={reloadData:b,changeData:c,rerender:d};return{newDTInstance:a}}function l(b){c.fn.DataTable.Api&&c.fn.DataTable.Api.register("ngDestroy()",function(d){return d=d||!1,this.iterator("table",function(e){var f,g=e.nTableWrapper.parentNode,h=e.oClasses,i=e.nTable,j=e.nTBody,k=e.nTHead,l=e.nTFoot,m=c(i),n=c(j),o=c(e.nTableWrapper),p=c.map(e.aoData,function(a){return a.nTr});if(e.bDestroying=!0,c.fn.DataTable.ext.internal._fnCallbackFire(e,"aoDestroyCallback","destroy",[e]),d||new c.fn.DataTable.Api(e).columns().visible(!0),o.unbind(".DT").find(":not(tbody *)").unbind(".DT"),c(a).unbind(".DT-"+e.sInstance),i!==k.parentNode&&(m.children("thead").detach(),m.append(k)),l&&i!==l.parentNode&&(m.children("tfoot").detach(),m.append(l)),m.detach(),o.detach(),e.aaSorting=[],e.aaSortingFixed=[],c.fn.DataTable.ext.internal._fnSortingClasses(e),c(p).removeClass(e.asStripeClasses.join(" ")),c("th, td",k).removeClass(h.sSortable+" "+h.sSortableAsc+" "+h.sSortableDesc+" "+h.sSortableNone),e.bJUI&&(c("th span."+h.sSortIcon+", td span."+h.sSortIcon,k).detach(),c("th, td",k).each(function(){var a=c("div."+h.sSortJUIWrapper,this);c(this).append(a.contents()),a.detach()})),!d&&g)try{g.insertBefore(i,e.nTableReinsertBefore)}catch(q){b.warn(q),g.appendChild(i)}m.css("width",e.sDestroyWidth).removeClass(h.sTable),f=e.asDestroyStripes.length,f&&n.children().each(function(a){c(this).addClass(e.asDestroyStripes[a%f])});var r=c.inArray(e,c.fn.DataTable.settings);-1!==r&&c.fn.DataTable.settings.splice(r,1)})})}function m(){function a(a){return c.extend(c.fn.dataTable.defaults,{oLanguage:{sUrl:a}}),f}function b(a){return c.extend(!0,c.fn.dataTable.defaults,{oLanguage:a}),f}function d(a){return c.extend(c.fn.dataTable.defaults,{iDisplayLength:a}),f}function e(a){return f.bootstrapOptions=a,f}var f={bootstrapOptions:{},setLanguageSource:a,setLanguage:b,setDisplayLength:d,setBootstrapOptions:e};return f}function n(a){function b(){return l}function e(a){a.after(l),a.hide(),l.show()}function f(a){a.show(),l.hide()}function g(a,b){var d="#"+a.attr("id");c.fn.dataTable.isDataTable(d)&&(b.destroy=!0);var e=a.DataTable(b),f=a.dataTable(),g={id:a.attr("id"),DataTable:e,dataTable:f};return j(b,g),g}function h(a,b){return n.hideLoading(a),n.renderDataTable(a,b)}function i(a){m.push(a)}function j(a,b){d.forEach(m,function(c){d.isFunction(c.postRender)&&c.postRender(a,b)})}function k(a){d.forEach(m,function(b){d.isFunction(b.preRender)&&b.preRender(a)})}var l=d.element(a.html),m=[],n={getLoadingElem:b,showLoading:e,hideLoading:f,renderDataTable:g,hideLoadingAndRenderDataTable:h,registerPlugin:i,postRender:j,preRender:k};return n}function o(){return{withOptions:function(a){return this.options=a,this}}}function p(a,b,c,d,e){function f(f){function g(b){l=b;var f=d.newDTInstance(m),g=c.hideLoadingAndRenderDataTable(b,m.options);return k=g.DataTable,a.when(e.register(f,g))}function h(){}function i(){}function j(){k.destroy(),c.showLoading(l),g(l)}var k,l,m=Object.create(b);return m.name="DTDefaultRenderer",m.options=f,m.render=g,m.reloadData=h,m.changeData=i,m.rerender=j,m}return{create:f}}function q(a,b,c,d,e,f,g,h){function i(i){function j(a,c,e){o=e,q=a,r=c.$parent,s=h.newDTInstance(t);var i=b.defer(),j=a.find("tbody").html(),k=j.match(/^\s*.+?\s+in\s+(\S*)\s*/),l=k[1];if(!k)throw new Error('Expected expression in form of "_item_ in _collection_[ track by _id_]" but got "{0}".',j);var m=!1;return r.$watchCollection(l,function(){p&&m&&n(),d(function(){m=!0;var a=f.hideLoadingAndRenderDataTable(q,t.options);p=a.DataTable,i.resolve(g.register(s,a))},0,!1)},!0),i.promise}function k(){a.warn("The Angular Renderer does not support reloading data. You need to do it directly on your model")}function l(){a.warn("The Angular Renderer does not support changing the data. You need to change your model directly.")}function m(){n(),f.showLoading(q),d(function(){var a=f.hideLoadingAndRenderDataTable(q,t.options);p=a.DataTable,s=g.register(s,a)},0,!1)}function n(){p.ngDestroy(),q.html(o),c(q.contents())(r)}var o,p,q,r,s,t=Object.create(e);return t.name="DTNGRenderer",t.options=i,t.render=j,t.reloadData=k,t.changeData=l,t.rerender=m,t}return{create:i}}function r(a,b,c,e,f,g,h){function i(i){function j(b){var c=a.defer();return t=h.newDTInstance(v),s=b,n(v.options.fnPromise,f.renderDataTable).then(function(a){r=a.DataTable,c.resolve(g.register(t,a))}),c.promise}function k(){d.isFunction(v.options.fnPromise)?n(v.options.fnPromise,q):c.warn("In order to use the reloadData functionality with a Promise renderer, you need to provide a function that returns a promise.")}function l(a){v.options.fnPromise=a,n(v.options.fnPromise,q)}function m(){r.destroy(),f.showLoading(s),j(s)}function n(b,c){var e=a.defer();if(d.isUndefined(b))throw new Error("You must provide a promise or a function that returns a promise!");return u?u.then(function(){e.resolve(o(b,c))}):e.resolve(o(b,c)),e.promise}function o(b,c){var e=a.defer();return u=d.isFunction(b)?b():b,u.then(function(a){var b=a;v.options.sAjaxDataProp&&(b=a[v.options.sAjaxDataProp]),u=null,e.resolve(p(v.options,s,b,c))}),e.promise}function p(c,d,e,g){var h=a.defer();return delete e.$promise,c.aaData=e,b(function(){f.hideLoading(d),c.bDestroy=!0,h.resolve(g(d,c))},0,!1),h.promise}function q(){return r.clear(),r.rows.add(i.aaData).draw(),{id:t.id,DataTable:t.DataTable,dataTable:t.dataTable}}var r,s,t,u=null,v=Object.create(e);return v.name="DTPromiseRenderer",v.options=i,v.render=j,v.reloadData=k,v.changeData=l,v.rerender=m,v}return{create:i}}function s(a,b,c,e,f,g,h){function i(i){function j(b){q=b;var c=a.defer(),e=h.newDTInstance(r);return d.isUndefined(r.options.sAjaxDataProp)&&(r.options.sAjaxDataProp=f.sAjaxDataProp),d.isUndefined(r.options.aoColumns)&&(r.options.aoColumns=f.aoColumns),n(r.options,b).then(function(a){p=a.DataTable,c.resolve(g.register(e,a))}),c.promise}function k(){if(p){var a=r.options.ajax.url||r.options.ajax;p.ajax.url(a).load()}}function l(a){r.options.ajax=a,r.reloadData()}function m(){p.destroy(),e.showLoading(q),j(q)}function n(c,d){var f=a.defer();return c.bDestroy=!0,e.hideLoading(d),o(c)?b(function(){f.resolve(e.renderDataTable(d,c))},0,!1):f.resolve(e.renderDataTable(d,c)),f.promise}function o(a){return d.isDefined(a)&&d.isDefined(a.dom)?a.dom.indexOf("S")>=0:!1}var p,q,r=Object.create(c);return r.name="DTAjaxRenderer",r.options=i,r.render=j,r.reloadData=k,r.changeData=l,r.rerender=m,r}return{create:i}}function t(a,b,c,e){function f(f,g){return g?b.create(f):d.isDefined(f)?d.isDefined(f.fnPromise)&&null!==f.fnPromise?c.create(f):d.isDefined(f.ajax)&&null!==f.ajax||d.isDefined(f.ajax)&&null!==f.ajax?e.create(f):a.create(f):a.create()}return{fromOptions:f}}function u(a){function b(a,c){var e=d.copy(a);if((d.isUndefined(e)||null===e)&&(e={}),d.isUndefined(c)||null===c)return e;if(d.isObject(c))for(var f in c)c.hasOwnProperty(f)&&(e[f]=b(e[f],c[f]));else e=d.copy(c);return e}function e(a,b){d.isObject(a)&&delete a[b]}function f(b,e){var f=a.defer(),h=[],i={},j=e||[];if(!d.isObject(b)||d.isArray(b))f.resolve(b);else{i=d.extend(i,b);for(var k in i)i.hasOwnProperty(k)&&-1===c.inArray(k,j)&&h.push(d.isArray(i[k])?g(i[k]):a.when(i[k]));a.all(h).then(function(a){var b=0;for(var d in i)i.hasOwnProperty(d)&&-1===c.inArray(d,j)&&(i[d]=a[b++]);f.resolve(i)})}return f.promise}function g(b){var c=a.defer(),e=[],g=[];return d.isArray(b)?(d.forEach(b,function(b){e.push(d.isObject(b)?f(b):a.when(b))}),a.all(e).then(function(a){d.forEach(a,function(a){g.push(a)}),c.resolve(g)})):c.resolve(b),c.promise}return{overrideProperties:b,deleteProperty:e,resolveObjectPromises:f,resolveArrayPromises:g}}d.module("datatables.directive",["datatables.instances","datatables.renderer","datatables.options","datatables.util"]).directive("datatable",e),e.$inject=["$q","$http","DTRendererFactory","DTRendererService","DTPropertyUtil"],d.module("datatables.factory",[]).factory("DTOptionsBuilder",f).factory("DTColumnBuilder",g).factory("DTColumnDefBuilder",h).factory("DTLoadingTemplate",i),h.$inject=["DTColumnBuilder"],d.module("datatables.instances",[]).factory("DTInstances",j).factory("DTInstanceFactory",k),j.$inject=["$q"],d.module("datatables",["datatables.directive","datatables.factory"]).run(l),l.$inject=["$log"],d.module("datatables.options",[]).constant("DT_DEFAULT_OPTIONS",{dom:"lfrtip",sAjaxDataProp:"",aoColumns:[]}).service("DTDefaultOptions",m),d.module("datatables.renderer",["datatables.instances","datatables.factory","datatables.options","datatables.instances"]).factory("DTRendererService",n).factory("DTRenderer",o).factory("DTDefaultRenderer",p).factory("DTNGRenderer",q).factory("DTPromiseRenderer",r).factory("DTAjaxRenderer",s).factory("DTRendererFactory",t),n.$inject=["DTLoadingTemplate"],p.$inject=["$q","DTRenderer","DTRendererService","DTInstanceFactory","DTInstances"],q.$inject=["$log","$q","$compile","$timeout","DTRenderer","DTRendererService","DTInstances","DTInstanceFactory"],r.$inject=["$q","$timeout","$log","DTRenderer","DTRendererService","DTInstances","DTInstanceFactory"],s.$inject=["$q","$timeout","DTRenderer","DTRendererService","DT_DEFAULT_OPTIONS","DTInstances","DTInstanceFactory"],t.$inject=["DTDefaultRenderer","DTNGRenderer","DTPromiseRenderer","DTAjaxRenderer"],d.module("datatables.util",[]).factory("DTPropertyUtil",u),u.$inject=["$q"]}(window,document,jQuery,angular);
\ No newline at end of file
diff --git a/src/angular-datatables.renderer.js b/src/angular-datatables.renderer.js
index 3b36b9246..1d9a1b386 100644
--- a/src/angular-datatables.renderer.js
+++ b/src/angular-datatables.renderer.js
@@ -69,7 +69,7 @@ function dtRendererService(DTLoadingTemplate) {
}
function postRender(options, result) {
- plugins.forEach(function(plugin) {
+ angular.forEach(plugins, function(plugin) {
if (angular.isFunction(plugin.postRender)) {
plugin.postRender(options, result);
}
@@ -77,7 +77,7 @@ function dtRendererService(DTLoadingTemplate) {
}
function preRender(options) {
- plugins.forEach(function(plugin) {
+ angular.forEach(plugins, function(plugin) {
if (angular.isFunction(plugin.preRender)) {
plugin.preRender(options);
}
diff --git a/src/angular-datatables.util.js b/src/angular-datatables.util.js
index 5243564c4..88db67782 100644
--- a/src/angular-datatables.util.js
+++ b/src/angular-datatables.util.js
@@ -66,7 +66,7 @@ function dtPropertyUtil($q) {
} else {
resolvedObj = angular.extend(resolvedObj, obj);
for (var prop in resolvedObj) {
- if (resolvedObj.hasOwnProperty(prop) && excludedProp.indexOf(prop) === -1) {
+ if (resolvedObj.hasOwnProperty(prop) && $.inArray(prop, excludedProp) === -1) {
if (angular.isArray(resolvedObj[prop])) {
promises.push(resolveArrayPromises(resolvedObj[prop]));
} else {
@@ -77,7 +77,7 @@ function dtPropertyUtil($q) {
$q.all(promises).then(function(result) {
var index = 0;
for (var prop in resolvedObj) {
- if (resolvedObj.hasOwnProperty(prop) && excludedProp.indexOf(prop) === -1) {
+ if (resolvedObj.hasOwnProperty(prop) && $.inArray(prop, excludedProp) === -1) {
resolvedObj[prop] = result[index++];
}
}
@@ -99,7 +99,7 @@ function dtPropertyUtil($q) {
if (!angular.isArray(array)) {
defer.resolve(array);
} else {
- array.forEach(function(item) {
+ angular.forEach(array, function(item) {
if (angular.isObject(item)) {
promises.push(resolveObjectPromises(item));
} else {
@@ -107,7 +107,7 @@ function dtPropertyUtil($q) {
}
});
$q.all(promises).then(function(result) {
- result.forEach(function(item) {
+ angular.forEach(result, function(item) {
resolveArray.push(item);
});
defer.resolve(resolveArray);