【发布时间】:2015-02-13 20:12:43
【问题描述】:
创建表后,我想将其中一个<td>s 中的值发送到使用 ng-model 的函数,但无论我尝试什么,该变量都保持未定义。
该变量应包含名为 saveCron() 的单元格内的值。当我试图破坏 cron_format 单元格内的值时,问题就开始了。我用letters() 函数拆分值:
$scope.letters = function(rawname) {
var lettersarray = rawname.split(" ");
return lettersarray;
};
现在每个字符都有自己的输入字段,而不是一个输入字段中的所有 cron_format 值。
表格如下所示:
<table ng-controller="tableCtrl">
<thead>
<th>user name</th>
<th>script name</th>
<th>cron format</th>
</thead>
<tbody ng-repeat="(user_id,row) in data">
<tr ng-repeat="(script_id, cron_format) in row">
<td>{{user(user_id)}}</td>
<td>{{script(script_id)}}</td>
<td ng-model="vm.l">
<input type="text" ng-repeat="letter in letters(cron_format) track by $index" value="{{letter}}"/>
<button ng-click="saveCron(user_id,script_id,cron_format)">save</button>
</td>
</tr>
</tbody>
</table>
和saveCron() 这样:
$scope.saveCron = function(userId,scriptId,cronFormat){
console.log($scope.vm.l);
}
*在实践中,我还有更多:) 函数内部的复杂逻辑,但为了简单起见,我将保留这样的函数。
底线:如何将创建调用的<td> 中的整个值传递给 saveCron()?
示例:如果<td> 代码如下所示:
<td ng-model="vm.l">
<input value="1"><input value="2"><input value="3">
</td>
该函数将获得(记录)“123”,如果用户编辑了一些输入字段,让我们说:
<td ng-model="vm.l">
<input value="4"><input value="2"><input value="4">
</td>
然后点击保存,函数会得到 424... 有什么帮助吗?
【问题讨论】:
-
将 td 更改为
<td ng-model="vm.l"> <input type="text" ng-repeat="letter in letters(cron_format) track by $index" value="{{letter}}" ng-model="letter"/> <button ng-click="saveCron(user_id,script_id,cron_format)">save</button> </td>现在这将进行双向绑定 -
不幸的是。控制台中仍然出现此错误:
Cannot read property 'l' of undefined -
ng- model="vm.l" 你不能在你的范围内得到这个
-
对不起,我对 Angular 有点陌生...你能解释一下你的意思吗?
-
你这里有很多问题,我试着在答案中解释。
标签: html angularjs angular-ngmodel