首先,如果您打算重新使用<foo>
,那么你应该创建一个isolated scope:
.directive("foo", function(){
return {
restrict: "E",
scope: {
data: "="
},
template: "<div><label>Enter foo: </label><input ng-model='data'/></div>"
}
});
有创建自定义指令或其他标记之间没有什么区别。没有太多了解你在做什么,我可以建议如下:
app.controller("MainCtrl", function($scope)){
$scope.fooModels = [];
$scope.addFoo = function(){
$scope.fooModels.push(new FooModel());
};
}
FooModel()
这里,不过是为了什么PLACEHOLD需要代表富数据的数据模型。你也可以这样做:$scope.fooModels.push({});
。
视图
然后,只需ng-repeat
您fooModels:
<div ng-repeat="fooModel in fooModels">
<foo data="fooModel.data"></foo>
</div>
<button ng-click="addFoo()">Add Foo</button>
这里有一个plunker一起玩。