【发布时间】:2015-05-10 19:20:13
【问题描述】:
我有一个表单,它在存储到数据库之前将其输入传递给ng-model。其中之一是从其数据库表中获取的动态值(预生成的代码)。
<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>
理论上,一旦ng-model 获得值,它就会将其传递给insert 调用,以便数据库将其与其余字段一起存储。
scope.processForm = function(isValid){
scope.$submitted = true;
if(isValid && state.$current=='registration.signupapp') {
http.post("server/insert.php",{'code': scope.codes.code, 'fullname': scope.formData.name, 'instagram': scope.formData.igname, 'email': scope.formData.email, 'mobile': scope.formData.mobile, 'location': scope.formData.location.type, 'branch': scope.formData.branches.branch}).success(function(data, status, headers, config){
console.log("inserted successfully");
});
state.go('registration.success');
} else if(!isValid) {
//alert("Please make sure that you entered everything correctly.");
}
};
很遗憾,这不起作用。 1)有人告诉我,你不能简单地将ng-value 传递给input[text] 内的ng-model。 2) 即使在将值传递给ng-model 的情况下,我也不确定在控制器内部调用什么,因为scope.codes.code 或scope.formData.code 似乎不起作用并且得到not defined 错误或@ 987654333@.
简而言之,我该怎么做:
- 获取
ng-repeat生成的值,设置为limitTo:1。 - 将其实时存储到
ng-model(因为这非常依赖于 动态下拉菜单)。 - 将
ng-model的值传回controller。 - 将其发送回服务器并将其存储到数据库中。
【问题讨论】:
-
在我看来,您已经将控制器范围内的数据作为“响应”。与其使用 ng-repeat 获取一个值,不如使用过滤服务并在控制器范围内设置 formData.code 的值。
-
您能否通过代码给我一个要点,以便我更清楚地了解您在说什么?
-
为答案添加了一个简短的演示。我认为这就是您想要完成的目标。
-
如果您只打算在 ng-repeat 工作时设置模型的值,那么我猜 ng-init 就是您要寻找的......请参阅我的实施答案
标签: angularjs angularjs-scope angularjs-ng-repeat angularjs-controller