Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在$scope中查找键以特定字符串开头的对象?_Angularjs_Scope - Fatal编程技术网

Angularjs 在$scope中查找键以特定字符串开头的对象?

Angularjs 在$scope中查找键以特定字符串开头的对象?,angularjs,scope,Angularjs,Scope,我有一个这样的文本字段列表 <ul> <li><input type="text" name="option1" ng-model="option1" /></li> <li><input type="text" name="option2" ng-model="option2" /></li> </ul> 我想找到$scope中的所有选项*

我有一个这样的文本字段列表

    <ul>
        <li><input type="text" name="option1" ng-model="option1" /></li>
        <li><input type="text" name="option2" ng-model="option2" /></li>
    </ul>
我想找到$scope中的所有选项*
提前感谢您的回答

我将创建一个数组,该数组将保存输入数据,然后添加一个循环以在html中迭代该数组。这样,您就不需要在范围内搜索特定对象,您就可以准备好数组了

$scope.allOptions = [
    {name: 'option1', text: ''},
    {name: 'option2', text: ''}
];
然后:

<ul>
    <li ng-repeat="option in allOptions"><input type="text" name="{{option.name}}" ng-model="option.text" /></li>
</ul>

问题是我不知道列表中文本字段的数量。应用程序默认有两个列表,但也有一个按钮,允许用户以编程方式添加新选项。因此,使用Jquery,我在ng模型的每个文本字段中添加了一个累进数。第一个ng模型=选项1,第二个选项2

我建议使用angular then(添加另一个输入)

$scope.addInput=function(){
var n=$scope.allOptions.length;
$scope.allOptions.push({name:'option'+(n+1),文本:'});
};
令人敬畏的是这里

有几种方法可以做到这一点

我向您展示的第一种方法将是实现该方法的自然下一步,并允许您根据请求访问这些值

首先,将输入绑定到数组,如下所示:

<ul>
    <li><input type="text" name="option[1]" ng-model="option[0]" /></li>
    <li><input type="text" name="option[2]" ng-model="option[1]" /></li>
    <li><input type="text" name="option[3]" ng-model="option[2]" /></li>
</ul>
$scope.rOptions = [
   {name: 'option1', val: ''},
   {name: 'option2', val: ''},
   {name: 'monkey', val: ''}
];
然后,在控制器中,您可以通过
$scope.option
访问它们

一种更高级、更简单/更易于维护的方法可能是使用非常强大的
ng repeat

要使用
ng repeat

首先,在控制器中设置对象数组,如下所示:

<ul>
    <li><input type="text" name="option[1]" ng-model="option[0]" /></li>
    <li><input type="text" name="option[2]" ng-model="option[1]" /></li>
    <li><input type="text" name="option[3]" ng-model="option[2]" /></li>
</ul>
$scope.rOptions = [
   {name: 'option1', val: ''},
   {name: 'option2', val: ''},
   {name: 'monkey', val: ''}
];
然后,您可以使用一组简化的标记输出HTML:

 <ul>
    <li ng-repeat="rOption in rOptions"><input name="{{rOption.name}}" ng-model="rOption.val"></li>
</ul>
并且,在控制器中,您可以通过
$scope.rOption
访问这些值


您可以查看上面的提琴,了解这两个选项是如何工作的,以及如何访问数据。

我想获得列表选项值的数组请详细说明,为什么不绑定到数组?例如
ng model=“option[0]”“
?问题在于我不知道列表中文本字段的数量。应用程序默认有两个列表,但也有一个按钮,允许用户以编程方式添加新选项。因此,使用Jquery,我在ng模型的每个文本字段中添加了一个累进数。第一个ng模型=选项1,第二个选项2,…清除问题->清除解决方案,我不理解你的观点。。。无需添加任何文字。我同意@cale_b也需要解释。不仅如此。问题很明显。给你一个明确的解决方案。OP和未来的访问者可能不知道
ng repeat
,它是如何工作的,在哪里可以找到它的文档,等等。好的,添加了一些词。问题是我不知道列表中文本字段的数量。应用程序默认有两个列表,但也有一个按钮,允许用户以编程方式添加新选项。因此,使用Jquery,我在ng模型的每个文本字段中添加了一个累进数。第一个ng模型=选项1,第二个选项2。。。