为什么jquery select.val()在AngularJS环境中返回type:value?

为什么jquery select.val()在AngularJS环境中返回type:value?,jquery,angularjs,Jquery,Angularjs,请参见此示例: 当我更改下拉列表时,该值将显示为数字:1。 当我在home.html中删除ng模型时,该值将显示为不带“number:”。 您能解释一下吗?发生这种情况的原因是ng model返回带有数据类型的值。因此,当您添加ng型号时,您将获得编号:1 例如 <select id="s1" ng-model="$ctrl.personId"> <option ng-repeat="option in $ctrl.persons" ng-value="option.na

请参见此示例: 当我更改下拉列表时,该值将显示为数字:1。 当我在home.html中删除ng模型时,该值将显示为不带“number:”。
您能解释一下吗?

发生这种情况的原因是
ng model
返回带有数据类型的值。因此,当您添加
ng型号时,您将获得
编号:1


例如

<select id="s1" ng-model="$ctrl.personId">
  <option ng-repeat="option in $ctrl.persons" ng-value="option.name">{{option.name}}</option>
</select>
<div id="output"></div>

{{option.name}
在上面的示例中,如果您给出的是
ng value=“option.name”
而不是
ng value=“option.id”
,那么您将得到输出字符串:Alice
这是因为name的数据类型是string。同样,当您设置
ng value=“option.id”
时,它将为您提供
number:1
,因为id的数据类型是
number




希望您对解释感到满意。

hm,但自angular js 1.5.8以来,情况发生了变化。当我在package.json中将版本更改为1.5.8时,它会按预期工作(没有数据类型)。