Javascript 使用AngularJS中动态显示的列对表进行排序

Javascript 使用AngularJS中动态显示的列对表进行排序,javascript,html,angularjs,Javascript,Html,Angularjs,我正在尝试制作一个具有排序功能的表,以及一个用于选择要显示哪些列的按钮。 这两个特性单独使用时都可以工作,但如果我试图将它们结合使用,则会失败 JS angular.module('test',[]); 角度。模块(“测试”)。控制器(“会话TRL”,会话TRL); 函数sessiontrl(){ var vm=这个; vm.testvar=“HELLO”; vm.sortType='name'; vm.sortReverse=false; vm.ColumnVisibility={ 姓名:对,

我正在尝试制作一个具有排序功能的表,以及一个用于选择要显示哪些列的按钮。
这两个特性单独使用时都可以工作,但如果我试图将它们结合使用,则会失败

JS
angular.module('test',[]);
角度。模块(“测试”)。控制器(“会话TRL”,会话TRL);
函数sessiontrl(){
var vm=这个;
vm.testvar=“HELLO”;
vm.sortType='name';
vm.sortReverse=false;
vm.ColumnVisibility={
姓名:对,
规格:正确,
类型:对,
};
vm.TableData=[{
名称:“2017/03/01-14”,
规范:“IDB-IDB-1wk”,
类型:“完整”
}, {
名称:“2017/03/01-17”,
规格:“Set-04”,
类型:“完整”
}, {
名称:“2017/03/04-11”,
规范:“IDB-IDB-1wk”,
类型:“完整”
}];
}
问题是
此处的
列可见性的拼写与控制器中的拼写不匹配

 vm.columnVisiblity = {

    name: true,
    specification: true,
    type: true,
  };
这是一个打字错误,纠正拼写就行了

演示:

angular.module('test',[]);
角度。模块(“测试”)。控制器(“会话TRL”,会话TRL);
函数sessiontrl(){
var vm=这个;
vm.testvar=“HELLO”;
vm.sortType='name';
vm.sortReverse=false;
vm.ColumnVisibility={
姓名:对,
规格:正确,
类型:对,
};
vm.TableData=[{
名称:“2017/03/01-14”,
规范:“IDB-IDB-1wk”,
类型:“完整”
}, {
名称:“2017/03/01-17”,
规格:“Set-04”,
类型:“完整”
}, {
名称:“2017/03/04-11”,
规范:“IDB-IDB-1wk”,
类型:“完整”
}];
}

{{vm.testvar}}
名称
规范
类型
{{item.name}
{{item.specification}}
{{item.type}

错别字是在我输入代码时,因为我的父代码很大,所以我尝试制作一个较小的代码片段。修正了问题中的错误。我的原始代码没有输入错误。如果你修复了输入错误,那么代码工作正常,你可以检查小提琴。在我的父代码中,它是排序和切换列,我已经广泛地检查了拼写错误。问题是,虽然列的添加和删除可以正常工作,但排序不起作用。但是如果我删除了ColumnVisibility部分,排序又可以正常工作了。我的父代码使用复选框而不是超链接来显示列的可见性,这会有什么不同吗?(我知道小提琴工作正常,但仍然无法解决问题)如果您也使用复选框也不会有任何区别,因为在ng click上,您给出的代码是相同的,我觉得这部分代码没有问题,其他东西正在把代码弄乱。我也这么认为。这是一个大型应用程序。我会调查还有什么问题。谢谢:)错别字是在我输入代码的时候,因为我的父代码很大,所以我试着制作一个较小的代码片段。修正了问题中的错误。我的原始代码没有输入错误没有,问题没有解决。在我的父代码中,我广泛地检查了拼写错误。问题是,虽然列的添加和删除可以正常工作,但排序不起作用。但是如果我删除了ColumnVisibly部分,排序又可以正常工作了。@ChaoticTwist请看演示。分类很好,我也意识到了这一点。我想还有其他一些问题与这部分无关。我的代码是更大应用程序的一部分,所以它可能是其他组件,我将研究它。谢谢。@ChaoticTwist:-)