Javascript 模型的值包括不必要的文本

Javascript 模型的值包括不必要的文本,javascript,angularjs,Javascript,Angularjs,如果我在选项标记中指定{{item}}每页,为什么itemsPerPage模型会被分配5每页 <!-- the normal case: itemsPerPage is 5, 10, 20 --> <select ng-model="itemsPerPage" ng-init="items = [5, 10, 20]"> <option ng-repeat="item in items">{{item}}</option> </sel

如果我在选项标记中指定
{{item}}每页
,为什么
itemsPerPage
模型会被分配
5每页

<!-- the normal case: itemsPerPage is 5, 10, 20 -->
<select ng-model="itemsPerPage" ng-init="items = [5, 10, 20]">
    <option ng-repeat="item in items">{{item}}</option>
</select>

<!-- the odd case: itemsPerPage is 5 per page, 10 per page, 20 per page -->
<select ng-model="itemsPerPage" ng-init="items = [5, 10, 20]">
    <option ng-repeat="item in items">{{item}} per page</option>
</select>

{{item}}
每页{item}}

由于您没有为选项标记分配值属性,在这种情况下,值将是打开和关闭所选“选项”标记内的所有文本,请使用“ng options”指令生成选择选项

例如:

<select>
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

一个
两个
三
选择“三”,选择值将为“3”,因为此选项具有值属性且为“3”


一个
两个
三
选择“三”,选择值将为“三”,因为此选项没有值,选择值将作为值文本显示在其中

您的第一个和第二个示例是相同的,没有值属性。区别只在文字里面

如果您使用ng选项角度指令,它将生成“选择正确”

<select ng-model="selItem" ng-init="items = [{id: 1, name: 'One'},{id: 2, name: 'Two'},{id: 3, name: 'Three'}]" ng-options="item.id as item.name for item in items">
</select>


看这个

我找到了解决方案:

我用

<select ng-model="itemsPerPage" ng-options="'show ' + item + ' items' for item in [5, 10, 25]" class="left"></select>

分配给相应的控制器

你能用一个小例子来扩展你的答案吗?很抱歉,JSFIDLE链接在select标签上被破坏了,与角度无关
<select ng-model="itemsPerPage" ng-options="'show ' + item + ' items' for item in [5, 10, 25]" class="left"></select>
$scope.itemsPerPage = 5;