我想知道如何从输入框访问$ scope值,该输入框恰好位于控制器内部的ng-repeat中。
查看
<div ng-repeat="item in items track by $index">
<form ng-submit="addItem(item, $index)">
<input ng-model="newItem.value" type="text"></input>
</form>
</div>
控制器
$scope.addItem = function(item, index) {
var itemVal = $scope.newItem.value;
console.log(itemVal);
}
主要问题是我无法从控制器内部的任何一个输入框访问该值。
真的很感激任何帮助。感谢
答案 0 :(得分:0)
如果每个项目需要一个输入,则需要为每个项目保留一个新模型。
如果items
是一个列表,您可以将这些newItem保存在单独的列表中(jsfiddle):
查看
<div ng-repeat="item in items track by $index">
<form ng-submit="addItem(item, $index)">
<input ng-model="newItems[$index]" type="text"></input>
</form>
</div>
控制器
$scope.newItems = [];
$scope.addItem = function(item, index) {
var itemVal = $scope.newItems[index];
console.log(itemVal);
}
答案 1 :(得分:0)
我相信你只有一个值,你想在ng-repeat中显示,然后在控制器内初始化newItem
,如
$scope.newItem = {}
由于控制器级别的newItem
初始化,ng-repeat
永远不会为它创建新的子范围,它将重用父级创建的子范围。