gpt4 book ai didi

javascript - ng-repeat 与 JSON 对象不打印

转载 作者:行者123 更新时间:2023-12-03 07:28:04 25 4
gpt4 key购买 nike

我有一个 Controller chatController.js和一个chat.html

chatController.js

$scope.getMessage = function() {
Chat.getMessage("C0RRZEDK4")
.success(function(response) {
console.log("getMessage: " + JSON.stringify(response));

$scope.channel = response.messages;
});
}

chat.html

<div ng-controller="ChatController">
<form>
<input ng-style="style(color)" type="text" ng-model="text" placeholder="text">
<button ng-click="sendMessage()">Send!</button>
<button ng-click="getMessage()">Get First Message!</button>

</form>

<li ng-repeat="msg in channel">
<li>{{msg.text}}</li>

</li>

*ng-app 在 header 其他地方指定,sendMessage() 函数工作正常。

问题是,当在 GUI 中单击 getMessage 时,ng-repeat 不会从 Controller 中使用 response.messages 设置的 channel 创建列表.

响应 json 如下所示:

{
"ok":true,"messages": [
{
"type":"message",
"user":"U0KTA20K0",
"text":"123",
"ts":"1457615693.000003"
},

{
"user":"U0KTA20K0",
"type":"message",
"subtype":"channel_join",
"text":"<@U0KTA20K0|julian_blair> has joined the
channel","ts":"1457615234.000002"}
],

"has_more":false
}

最佳答案

确保您的 Chat.getMessage 在 Angular 的 $digest 循环内执行。您可以通过以下代码尝试:

Chat.getMessage("C0RRZEDK4")
.success(function(response) {
console.log("getMessage: " + JSON.stringify(response));

$scope.channel = response.messages;
$scope.$apply() // if it is inside $digest loop it will trigger an error
});

如果$scope.$apply()不会触发错误,那么您的代码在 Angular $digest循环之外执行。

关于javascript - ng-repeat 与 JSON 对象不打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35920683/

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