Javascript 有没有一种方法可以使用angular中的$index作为ng重复中的模型?

Javascript 有没有一种方法可以使用angular中的$index作为ng重复中的模型?,javascript,angularjs,Javascript,Angularjs,我有一个工厂,我正在将值从我的控制器推送到我的控制器 .factory("Inputs", function(){ var inputs = { }; inputs.editors = [0]; return inputs; }) 当我这样循环时,我想使用$index作为模型 <div class="texteditors"> <div class="form-group" ng-repeat="editor in app.i

我有一个工厂,我正在将值从我的控制器推送到我的控制器

.factory("Inputs", function(){

    var inputs = {

    };

    inputs.editors = [0];

    return inputs;

})
当我这样循环时,我想使用$index作为模型

<div class="texteditors">
    <div class="form-group" ng-repeat="editor in app.inputs.editors">
        <textarea class="form-control" name="{{$index}}" ng-model="inputs.editors[{{$index}}]" id="" cols="30" rows="10"></textarea>
     </div>
</div>

但它不会评估,我唯一能让它评估的方法是:

但是现在它是一个字符串,它的计算结果是inputs.editors['0']

然后我想循环遍历ng模型,并对它们{{inputs.editors[0]}进行评估,以确定添加了多少文本区域。我不确定我解释得是否恰当


如果我使用指令创建绑定,我将如何评估将值推送到工厂生成的文本区域和模型?

处理字符串时,您只需要花括号。正如@DimaGimburg也说过的,在你的ngModel中去掉它们

<div class="texteditors">
    <div class="form-group" ng-repeat="editor in app.inputs.editors">
        <textarea class="form-control" name="{{$index}}" ng-model="inputs.editors[$index]" id="" cols="30" rows="10"></textarea>
     </div>
</div>

ng模型
需要一个角度表达式。这意味着您不需要
{{}
符号

<textarea class="form-control" name="{{$index}}" ng-model="inputs.editors[$index]" id="" cols="30" rows="10"></textarea>

另一方面,
name
不需要角度表达式。这就是为什么您需要那里的
{{}

给您:

您的标记有几处错误

您还需要在
ng repeat
中添加
track by
,否则每次模型更改时都会失去焦点,因为文本区域是由
ng repeat
重新创建的

HTML:


您是否尝试过这样使用ng模型:ng model=“inputs.editors[$index]”?(没有花括号)谢谢这正是我需要的我真的很感谢你花时间回答!是的,我遇到的问题是它不会计算,我知道ng模型是和angular指令,name是一个html属性(指令),不需要表达式,而是字符串。
<div class="texteditors" ng-controller="MyCtrl as app">
    <div class="form-group" ng-repeat="editor in app.inputs.editors track by $index">
        <textarea class="form-control" ng-model="app.inputs.editors[$index]" id="" cols="30" rows="10"></textarea>
    </div>
    <div class="form-group" ng-repeat="editor in app.inputs.editors track by $index">
        <div>{{app.inputs.editors[$index]}}</vid>
    </div>
</div>
app.controller('MyCtrl', function($scope, Inputs) {
    this.inputs = Inputs;
})
.factory("Inputs", function(){
    var inputs = {};

    inputs.editors = ['foo', 'bar'];

    return inputs;

})