Javascript “选择不使用布尔值”的默认选项

Javascript “选择不使用布尔值”的默认选项,javascript,html,angularjs,Javascript,Html,Angularjs,有人能解释一下为什么第一个和最后一个select不显示默认值吗 angular.module('myApp',[]); 引导(document.documentElement,['myApp']) 假的 真的 要对页面进行解释: 在这两个示例中,track by表达式成功应用于options数组中的每个选项由于所选选项已在控制器中以编程方式设置,track by表达式也应用于ngModel值。当ngModel值为options[0]且track by表达式的计算结果为选项[0]。id没有问题

有人能解释一下为什么第一个和最后一个select不显示默认值吗

angular.module('myApp',[]);
引导(document.documentElement,['myApp'])

假的
真的
要对页面进行解释:

在这两个示例中,
track by
表达式成功应用于
options
数组中的每个
选项由于所选选项已在控制器中以编程方式设置,
track by
表达式也应用于
ngModel
值。
ngModel
值为
options[0]
track by
表达式的计算结果为
选项[0]。id
没有问题。当
ngModel
值为
options[0]时,label
track by
表达式的计算结果为
options[0]。label.id
(未定义)。因此,模型值与任何
都不匹配,
显示为没有选择的值

要对本页进行解释:

在这两个示例中,
track by
表达式成功应用于
options
数组中的每个
选项由于所选选项已在控制器中以编程方式设置,
track by
表达式也应用于
ngModel
值。
ngModel
值为
options[0]
track by
表达式的计算结果为
选项[0]。id
没有问题。当
ngModel
值为
options[0]时,label
track by
表达式的计算结果为
options[0]。label.id
(未定义)。因此,模型值与任何
都不匹配,
显示为没有选择的值


好的,所以当我选择option.id而不仅仅是选项时,我不应该使用“track by”,因为它会尝试将“track by”应用于ngModel值,这是一个布尔值。第一个例子怎么样?好吧,既然我选择的是option.id,而不仅仅是选项,我就不应该使用“track by”,因为它会尝试将“track by”应用到ngModel值,这是一个布尔值。第一个例子怎么样?不要在同一个表达式中使用select as和track by。它们不是为一起工作而设计的。ref:请勿在同一表达式中使用“选择为”和“跟踪依据”。它们不是为一起工作而设计的。裁判: