Angular.js使用ng-init将值添加到modelarray

时间:2012-10-26 17:18:36

标签: angularjs

我是Angular的新手,还在学习。我读了很多关于使用CMS生成静态HTML但是然后将其转换为Angular Models / Scopes然后进一步处理它。

现在我正在尝试在ng-init指令中为模型数组添加值,如下所示:

<div ng-init="art[0].anzahl=3">...</div>
<div ng-init="art[1].anzahl=2">...</div>
<div ng-init="art[2].anzahl=9">...</div>

但它不起作用,有人能看到我的愚蠢错误,还是我对如何使用ng-init完全错了?

以下是完整示例的链接:http://jsfiddle.net/Preexo/xVUty/

感谢您提前提供任何帮助:)

1 个答案:

答案 0 :(得分:3)

在尝试使用art设置默认值之前,您需要确保先声明ngInit数组(取消注释注释后的代码)。请参阅this fiddle作为示例。

$scope.art = [
    {'anzahl': 0},
    {'anzahl': 0},
    {'anzahl': 0}        
];

$scope.addOne = function(artIndex) {
    $scope.art[artIndex].anzahl += 1;
}

更新:此处还有其他一些选项

1)如果这有助于您的理解,您可以使用ng-repeat并在anzahl的控制器代码中声明默认值,例如this fiddle。这将减少标记中的代码并将模型的声明移动到控制器中,根据您的目的,它可以更清洁。

2)如果您仍想使用ngInit,可以将每个项目推送到标记中的art数组,如this fiddle中所示。