gpt4 book ai didi

mysql - ngModel 不绑定(bind)整数值

转载 作者:行者123 更新时间:2023-11-29 12:17:16 25 4
gpt4 key购买 nike

我遇到了 angularjs 的一个奇怪问题,

我用 laravel 和 mysql 编写了一个 API,它以 json 形式返回数据。

在我的 Ubuntu 机器上,它在 json 响应中以 STRING 形式返回 id 和外国 id,并且我的 ngModel 绑定(bind)工作正常。

我最近切换到运行 WAMP 的 Windows 机器,这里 laravel 将 id 和外部 id 返回为 INTEGER 并且我的 ngModel 绑定(bind)不再起作用。

示例

Ubuntu 上的 Laravel json 响应如下所示:

{
"id": "1234",
"name": "enam",
...
}

Windows 上的 Laravel json 响应如下所示:

{
"id": 1234,
"name": "enam",
...
}

我有一个输入[文本]字段,将此响应绑定(bind)到 ngModel,如下所示:

<input type="text" ng-model="vm.user.id" ...>

在我的 Ubuntu 机器上它工作正常,在 Windows 上我得到一个空的输入字段。

以前有人遇到过这个问题吗?我怎样才能以干净的方式解决这个问题?

我想我可以将其转换为.toString();,但这对我来说似乎不太干净。

Controller 中的绑定(bind)

vm.getCustomer = function() {
Customer.getById($stateParams.id)
.then(function(data) {
vm.customer = data.data;
}, function(error) {
vm.error = error.data;
});
};

客户服务只返回 $http 调用

Json 响应 (Ubuntu)

{
"id": "1",
"name": "enam",
"postalcode_id": "1179",
"created_at": "2015-04-09 19:48:47",
"updated_at": "2015-04-11 18:00:02",
"postalcode": {
"id": "1179",
"postalcode": "1090",
"city": "JETTE",
"province": "Brussel (19 gemeenten)"
}
}

在 Windows 中,它返回 postalcode.postalcode 且 id 为 INTEGER,正如 @Matthew Brown 建议的那样,它与 $cast 一起使用

最佳答案

这似乎不是操作系统问题,而是操作系统之间的浏览器问题。

只需在服务器端修复它,如果您使用的是 Laravel 5,则只需向模型添加 $casts 属性即可:

protected $casts = [
'id' => 'integer'
];

就我个人而言,我喜欢在 API 中使用转换器。查看这个名为 Fractal 的库。这使得包含关系和类型转换成为一个梦想,并且允许您的 api 通过 future 的列名称更改等保持不变。

关于mysql - ngModel 不绑定(bind)整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29609422/

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