我有一个控制器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在其他地方的头文件中指定,sendMessage()函数正常工作。
问题是当在GUI中单击getMessage时,ng-repeat不会从控制器中设置为channel
的{{1}}创建列表。
响应json看起来像这样:
response.messages
答案 0 :(得分:1)
确保您的Chat.getMessage
执行$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()
不会触发错误,那么您的代码会在角度$digest
循环之外执行。