【发布时间】:2013-10-18 01:30:32
【问题描述】:
<p ng-repeat="row in matrix">
<span ng-repeat="column in row">
<input type="text" style="width: 20px; text-align: center;" ng-model="column" ng-change="{{column = }}">
</span>
</p>
在我的控制器上:
$scope.matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];
我有一小段代码,我希望那个小文本输入框与matrix[i][u] 相关联。我知道我可以使用ng-model= 使文本框与某个变量相关联。
但是,我希望它是双向的 - 更改变量将更改文本框值,更改文本框值将更改变量。但是,当我在输入文本框上有 ng-model 时,我似乎无法编辑它的值,因为它总是会“重置”为默认值。
我知道我可以使用ng-change,但我做了中间线:
<input type="text" style="width: 20px; text-align: center;" ng-model="column" ng-change="update">
而且调用 $scope.update() 函数也不起作用。我仍然无法编辑文本框的值。
tl;dr:我怎样才能有一个带有ng-model 的文本框并允许对其进行编辑以编辑文本框值和 ng-model 上的变量。
【问题讨论】:
-
stackoverflow.com/questions/15720334/… 我现在发现了,但根据那个我的应该也可以工作。
-
我在该问题/答案中看不到任何表明您的解决方案应该有效的内容。这里的问题是每个
ng-repeat都会创建一个子作用域,如果您最终处于变量的“标量”级别,这将创建与其父级断开连接的变量。 -
再次重申:此处所写和显示的内容不适用于此处。该问题并不表明您的代码应该可以工作。
-
一个工作的原因是因为那些是对象,你刚刚得到整数。如果你有实际的对象,这将在没有 $index 或任何东西的情况下工作。
标签: angularjs