gpt4 book ai didi

AngularJS ng-options 创建范围

转载 作者:行者123 更新时间:2023-12-02 19:58:09 24 4
gpt4 key购买 nike

我正在尝试创建一个选择元素,其中包含数字1到页面的列表,其中页面是一个变量,即我拥有的页面数。我不知道该怎么做是构造 ng-options 表达式,以便它能给我我需要的数字。这是我到目前为止所拥有的

<select ng-model="page" ng-options="???"></select>

我需要在 ng-options 表达式中放入什么才能创建我的选择

<select>
<option value="1">1</option>
...
<option value="35">35</option>
</select>

我是否需要创建一个返回数字数组的函数并以某种方式在其中使用它,或者是否有更简单的方法来做到这一点?

任何帮助将不胜感激。

谢谢

编辑

在发布我的问题后,我找到了一种方法来做到这一点,即在我的 Controller 中创建一个名为 Range 的函数,该函数接受两个数字并返回一个包含该范围内所有值的数组。

$scope.Range = function(start, end) {
var result = [];
for (var i = start; i <= end; i++) {
result.push(i);
}
return result;
};

然后在 HTML 中我做了

<select ng-name="page" ng-options="page for page in Range(1, pages)"></select> 

这是最简单的方法还是有更好的方法?

最佳答案

你的方法很好用。我想到的另一个选择是使用过滤器,这样您就不必用范围污染您的 Controller 。

JS:

var myApp = angular.module('myApp', []);
myApp.filter('range', function() {
return function(input, min, max) {
min = parseInt(min); //Make string input int
max = parseInt(max);
for (var i=min; i<max; i++)
input.push(i);
return input;
};
});

HTML:

<select ng-model="page" ng-options="n for n in [] | range:1:30"></select>

示例:http://jsfiddle.net/N3ZVp/1/

附注在您的主要帖子的示例中,您没有将 var 放在 i 前面。因此 i 在您的示例中被声明为全局变量。

关于AngularJS ng-options 创建范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11160513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com