0

我有一个ng-repeat循环我的对象值来查看。然后我想要一个按钮来将新的空白元素添加到最后一个ng-repeat值。

我怎样才能做到这一点?

我的数据是 json 对象。我试过了

In controller
$scope.objs = {'a': 'a', 'b':'b'};

In view
{{Object.keys(objs).length}};
But nothing show in view.

更新

<div ng-repeat="docstep in docs.docsteps" class="docstep">
   {{docstep.text}}
</div>

然后我想获取对象的长度,所以我可以在按钮单击中 .length + 1 但我不知道如何获取对象长度。或者有什么更好的主意吗?

4

2 回答 2

1

使用ng-click将点击处理程序绑定到按钮:

<div ng-repeat="docstep in docs.docsteps" class="docstep">
   <input type="text" value="{{docstep.text}}">
</div>
<button ng-click="addNew()">Add another input</button>
When this button is clicked. It will add another blank input
<br>Which the new input will be docstep3

这就是你的 JS 的样子:

var myApp = angular.module('myApp',[]);
myApp.run(function($rootScope){

    $rootScope.docs = {
        "docsteps" : {
            "docstep1" : {
               "text" : "a"
            },
            "docstep2" : {
               "text" : "b"
            }
        }

    }

    var c = 2; 
    $rootScope.addNew = function(){
        count++;
        $rootScope.docs.docsteps["docstep"+count] = {"text":count}
    }
});

注意:您应该使用ng-app为 Angular 定义工作区并使用控制器来驻留模型(文档)并定义视图的行为(addNew)。

于 2013-08-08T19:09:57.593 回答
0

我拿走了你的ng-repeat,让它工作。请注意,我将您的对象放入其中,$rootScope但您可以将相同的对象应用于您的 ng-repeat 所在的任何范围。

JS

var myApp = angular.module('myApp',[]);
    myApp.run(function($rootScope){
    $rootScope.docs={docsteps:[{text:'A'},{text:'B'},{text:'C'}]};
});

JSFIDDLE:http: //jsfiddle.net/mac1175/Snn9p/

于 2013-08-08T18:22:37.333 回答