我已经搜索了几个小时,似乎无法在任何地方找到问题的答案。我记得我曾经能够实现它,但是由于某种原因我丢失了代码,而且我似乎不记得为使它起作用而做了什么。
我正在尝试使用ng-options在选择框中显示来自数组的数据。我没有问题的那个。我需要实现的是,只有某些数组值会显示/包括在选择框中。
我的数据如下:
$scope.chartList = [ { "id" : 1, "name" : "chart 1", "order" : 1, "active" : false }, { "id" : 2, "name" : "chart 2", "order" : 2, "active" : true }, { "id" : 3, "name" : "chart 3", "order" : 3, "active" : true }, { "id" : 4, "name" : "chart 4", "order" : 4, "active" : true }, { "id" : 5, "name" : "chart 5", "order" : 5, "active" : true } ];
我的HTML看起来像:
<select ng-model="toAddChart" ng-options="chart.id as chart.name for chart in chartList | filter:chart.active=='false'"> <option value=""></option> </select>
所以我想发生的是,如果属性“ active”的值为false,那么这是数组项唯一显示/包含在选择列表中的时间。我尝试了filter属性的不同排列,但似乎都没有用。
我知道我可以轻松地在标记中使用ng-repeat并使用ng-show,但是我记得在某处读过(同样,我找不到位置),这不是实现它的正确方法,并且使用ng- options是正确的方式。
我真的很确定自己能够在不创建自定义javascript过滤器的情况下完成此操作,但是对于我一生来说,我不记得自己是如何做到的。我希望有人可以
希望有人可以帮助我,因为我没有主意。
更新:
伟大的斯科特,我想我已经明白了。
代替:
filter:chart.active=='false'
它应该是:
filter:chart.active='false'
这只是所使用的等号的数量。 面容
谢谢大家的回复。
这只是所使用的等号的数量。面容