gpt4 book ai didi

angularjs - 为什么 Angular 将 undefined 设置为空 ng-model 字段

转载 作者:行者123 更新时间:2023-12-02 19:29:35 24 4
gpt4 key购买 nike

我在 Angular (1.2) 和 Laravel (4.2) 中有简单的 CRUD 应用程序。对于简单的增删改查操作,我使用高效的 Eloquent 方法:

$product->fill(Input::all());

它从请求负载中获取所有字段,但是当我需要使用空字段更新模型时会出现问题吗?

在编辑操作中,我有一个表单,其中填充了我的服务的 $resource get 方法的响应:

adminModule.factory 'Product', ($resource) ->
$resource '/admin/products/:id', { id: '@id' }, {
query: { method: 'GET', isArray: false }
update: { method: 'PUT' }
}

Controller :

adminModule.controller 'ProductFormEditController', ($scope, Product, $stateParams) ->

$scope.formData = Product.get({id: $stateParams.id})

和 html:

    <input  type="text" data-ng-model="formData.name" name="name" class="form-control" id="name"
placeholder="Nazwa" data-server-error required>

如果我清除此字段值并提交,$scope.formData 的值将设置为未定义,并且不包含在 PUT 请求中,因此 Laravel 模型填充方法无论如何都看不到该字段,也不会设置验证的空值,但采用模型的原始值。

问题是:如何从 ngModel 发送空字符串而不是未定义的?

附:如果输入类型是 Textarea,则 $resource 发送空的“”字符串:-/,所以我很困惑......

最佳答案

即使当 ngModelOptions 中的属性 allowInvalid 的值无效时,您也可以配置 Angular 来设置模型。

allowInvalid: boolean value which indicates that the model can be set with values that did not validate correctly instead of the default behavior of setting the model to undefined.

API Reference

示例:

<input 
type="text"
ng-model="myvalue"
ng-model-options="{ allowInvalid: true }"/>

关于angularjs - 为什么 Angular 将 undefined 设置为空 ng-model 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26138146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com