Angularjs 将值从ng repeat传递到ng模型

Angularjs 将值从ng repeat传递到ng模型,angularjs,angularjs-scope,angularjs-ng-repeat,angularjs-controller,Angularjs,Angularjs Scope,Angularjs Ng Repeat,Angularjs Controller,我有一个表单,在存储到数据库之前将其输入传递到ng模型。其中之一是从其数据库表中获取的动态值预生成代码 <div class="form-group" ng-repeat="codes in response | filter: {branch: formData.branches.alias, taken: 0} | limitTo: 1"> <input class="form-control" type="text" name="code" ng-model="for

我有一个表单,在存储到数据库之前将其输入传递到ng模型。其中之一是从其数据库表中获取的动态值预生成代码

<div class="form-group" ng-repeat="codes in response | filter: {branch: formData.branches.alias, taken: 0} | limitTo: 1">
  <input class="form-control" type="text" name="code" ng-model="formData.code" ng-value="codes.code" readonly="" />
</div>
不幸的是,这不起作用。1我被告知不能简单地将ng值传递给输入[text]中的ng模型。2即使在将值传递给ng模型的情况下,我也不确定在控制器内部调用什么,因为scope.codes.code或scope.formData.code似乎不起作用,并且得到未定义的错误或404

简而言之,我该如何:

获取ng repeat生成的值,设置为limito:1。 将其实时存储到ng模型,因为这非常依赖于 动态下拉列表。 将ng模型的值传递回控制器。 将其发送回服务器并存储到数据库。
这确实是人为的,但这里有一个非常简化的演示:

var app=angular.module'demo',[]; app.filter'myFilter',函数{ 返回函数数据{ 返回数据[0]; }; }; app.controller'MainCtrl',['$scope','$filter',函数$scope,$filter{ var myfilter=$filter'myfilter'; $scope.response=['001','002','003','004','005']; $scope.items=['Item 1'、'Item 2'、'Item 3'] $scope.formData={}; $scope.$watch'formData.select',functionnewval{ 如果newval=='项目1'{ $scope.formData.code=myfilter$scope.response; }否则{ $scope.formData.code=; } }; }]; @进口https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css; 选择值:选择项目1以更新formData.code formData.code:
这确实是人为的,但这里有一个非常简化的演示:

var app=angular.module'demo',[]; app.filter'myFilter',函数{ 返回函数数据{ 返回数据[0]; }; }; app.controller'MainCtrl',['$scope','$filter',函数$scope,$filter{ var myfilter=$filter'myfilter'; $scope.response=['001','002','003','004','005']; $scope.items=['Item 1'、'Item 2'、'Item 3'] $scope.formData={}; $scope.$watch'formData.select',functionnewval{ 如果newval=='项目1'{ $scope.formData.code=myfilter$scope.response; }否则{ $scope.formData.code=; } }; }]; @进口https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css; 选择值:选择项目1以更新formData.code formData.code:
我想ng init应该在这里帮助你

将代码段更改为:

<div class="form-group" ng-repeat="codes in response | filter: {branch: formData.branches.alias, taken: 0} | limitTo: 1" ng-init="formData.code=codes.code">
  <input class="form-control" type="text" name="code" ng-model="formData.code" readonly="" />
</div>
致:


我想ng init应该在这里帮助你

将代码段更改为:

<div class="form-group" ng-repeat="codes in response | filter: {branch: formData.branches.alias, taken: 0} | limitTo: 1" ng-init="formData.code=codes.code">
  <input class="form-control" type="text" name="code" ng-model="formData.code" readonly="" />
</div>
致:


在我看来,您的控制器范围中已经有了作为“响应”的数据。不要使用ng repeat获取一个值,只需使用筛选服务并在控制器范围内设置formData.code的值。你能通过代码给我一个要点,以便我能更清楚地了解你在说什么吗?在答案中添加了一个简短的演示。我想这就是你想要实现的。如果你只想在ng repeat完成它的工作时设置model的值,那么我猜ng init就是你想要的。。。请参阅我的实施答案我觉得您的控制器范围中已经有了作为“响应”的数据。不要使用ng repeat获取一个值,只需使用筛选服务并在控制器范围内设置formData.code的值。你能通过代码给我一个要点,以便我能更清楚地了解你在说什么吗?在答案中添加了一个简短的演示。我想这就是你想要实现的。如果你只想在ng repeat完成它的工作时设置model的值,那么我猜ng init就是你想要的。。。请参阅我的实施答案谢谢。我对在控制器中使用过滤器很陌生,这就是我为什么问的原因。我认为,如果直接将数组赋值给scope.response,那么代码就可以工作。正在通过server/fetch.php文件从数据库中获取我的。出于某种原因,scope.response是一个未定义的对象,在转换为数组时返回[]。这与像您这样直接分配数组有什么区别吗?是的,区别在于您异步获取值,因此您必须确保已分配响应,但看起来其他人已经给了您一个您喜欢的答案。那很酷。祝你好运。也谢谢你,@jme11。我可能会记下你给我的东西,将来可能会用到。非常感谢,谢谢你。我对在控制器中使用过滤器很陌生,这就是我为什么问的原因。我认为,如果直接将数组赋值给scope.response,那么代码就可以工作。正在通过server/fetch.php文件从数据库中获取我的。出于某种原因,scope.response是一个未定义的对象,在转换为数组时返回[]。这和一辆直行的有什么区别吗
是的,区别在于您异步获取值,因此您必须确保已分配响应,但看起来好像其他人已经给了您一个您喜欢的答案。那很酷。祝你好运。也谢谢你,@jme11。我可能会记下你给我的东西,将来可能会用到。非常感谢。这个看起来很简单。这是使用已经可用的。我认为这在我当前的设置中效果更好。非常感谢,伙计!这个看起来很简单。这是使用已经可用的。我认为这在我当前的设置中效果更好。非常感谢,伙计!
<div class="form-group" ng-repeat="codes in response | filter: {branch: formData.branches.alias, taken: 0} | limitTo: 1" ng-init="formData.code=codes.code">
  <input class="form-control" type="text" name="code" ng-model="formData.code" readonly="" />
</div>