Javascript “违约”;“全部”;选项不适用于ng选项选择列表

Javascript “违约”;“全部”;选项不适用于ng选项选择列表,javascript,angularjs,Javascript,Angularjs,我使用的是嵌套组件结构,在使用ng选项生成的选择列表时,无法使用默认的“All”选项。我在本页底部添加了一个plunker。如果检查生成列表的范围,我会看到“All”返回的是null,而不是空字符串。普朗克补充如下 var-app=angular.module('plunker',[]); 应用程序组件('keyfeed'{ 绑定:{ 搜索:'=' }, 模板:` {{record.name} `, 控制器:功能($scope){ $scope.records=[ { “姓名”:“阿尔弗雷

我使用的是嵌套组件结构,在使用ng选项生成的选择列表时,无法使用默认的“All”选项。我在本页底部添加了一个plunker。如果检查生成列表的范围,我会看到“All”返回的是
null
,而不是空字符串。普朗克补充如下

var-app=angular.module('plunker',[]);
应用程序组件('keyfeed'{
绑定:{
搜索:'='
},
模板:`
  • {{record.name}
`, 控制器:功能($scope){ $scope.records=[ { “姓名”:“阿尔弗雷德·斯法特基斯特”, “id”:“1”, “标记”:“标记1” }, { “姓名”:“Berglunds snabbköp”, “id”:“2”, “标记”:“标记1” }, { “名称”:“商业中心Moctezuma”, “id”:“3”, “标记”:“标记2” }, { “名称”:“恩斯特·汉德尔”, “id”:“4”, “标记”:“标记2” } ]; } }); 应用程序组件('搜索'{ 绑定:{ 搜索:'=' }, 模板:` 全部的 `, 控制器:功能($scope){ 此参数为.tags=[ { “工业贸易署”:“1”, “名称”:“tag1” }, { “工业贸易署”:“2”, “名称”:“tag2” } ]; } });

安古拉斯普朗克
试试这个:

你会注意到两件事: 1) select中的代码需要变成
ng options=“tag.tid as tag.name for tags in tags”
(不是
$ctrl.tags
,因为
tags
数组绑定到组件
$scope


2) “所有”选项添加到下拉列表中,带有
tid='
。将空字符串与
过滤器组合使用:{tag:$ctrl.search}
将匹配所有内容。在记录的另一个属性中有一个
tid
的情况下,最好告诉过滤器也只匹配记录标记。

您链接的plunker的功能与您所说的不一样。标记没有显示,因此无法选择“全部”。更新的plunker@Kenmaybe添加一个ng init=“$ctrl.search=”,默认情况下选择空选项。很好的调用,完成了-默认的“全部”选项更清晰我希望有一个选项,我不必将全部作为选项添加到JSON中。不这样做有什么想法吗@Nathanbeck试试这个-我不确定你到底想如何清除标记搜索,但是你得到
$ctrl.search=''
的任何方法都会奏效。这个plunk使用了一个简单的可点击链接,但实际上你可以做任何事情