伙计们,我正在使用 AngularJS 和 angular-resource 来执行一个非常简单的 REST API 调用。这是我列出(并创建)消息的页面的 JavaScript 代码:
(function() {
'use strict';
var messagesApp = angular.module('messagesApp', ['ngResource']);
messagesApp.factory('Message', function($resource) {
return $resource('/api/messages/:id', {id: '@id'}, {
query: {method:'GET', isArray:true} });
});
messagesApp.controller('MessagesCtrl',
function($scope, Message) {
$scope.messages = Message.query();
$scope.addMessage = function() {
$.Dialog({
'title': 'Add new Message',
'content': '<p>Enter the <strong>unique</strong> name of the new message.</p><input type="text" id="newMessageName"/><p>Enter the <strong>unique</strong> ID for this message.</p><input type="text" id="newID"/>',
'draggable': false,
'overlay': true,
'closeButton': true,
'buttonsAlign': 'right',
'buttons': {
'save': {
'action' : function() {
var newMessage = new Message();
newMessage.name = $('#newMessageName').val()
newMessage.altid= parseInt($('#newID').val())
newMessage.longDescription = "This is a new message";
newMessage.$save();
console.log(newMessage.id)
}
}
}
});
}
}
);
})();
会发生什么是控制台日志消息打印出“未定义”。当我查看网络日志时,我看到我的 REST API 确实在返回新创建的对象时返回了它。我不应该使用 Ok 作为结果类型,而是使用其他东西吗?是否有我缺少的 HTTP 标头.. 还是我使用 $save 错误?
$.Dialog() 方法来自我正在使用的另一个 JavaScript 库(metroui.og.ua),我不知道这是否会干扰这个。