0
私はbecouseエラーを取得する必要があり、これは物語のファイルの私のコントローラが財産コントローラに未定義の「プッシュ」とそのサービスを読み込むことができません
angular.module('storyCtrl', ['storyService'])
.controller('StoryController', function(Story, socketio) {
var vm = this;
Story.all()
.then(function(response) {
//.success(function(data) {
//console.log(data);
vm.stories = response;
});
vm.createStory = function() {
vm.processing = true;
vm.message = '';
Story.create(vm.storyData)
.then(function(data) {
console.log(data);
//.success(function(data) {
vm.processing = false;
vm.storyData = {};
vm.message = data.message;
});
};
socketio.on('story', function(response) {
vm.stories.push(response);
})
})
.controller('AllStoriesController', function(stories, socketio) {
var vm = this;
vm.stories = stories.data;
socketio.on('story', function(data) {
vm.stories.push(data);
});
});
であり、これは私の話のサービスファイル
angular.module('storyService', [])
.factory('Story', function($http) {
var storyFactory = {};
storyFactory.allStories = function() {
return $http.get('/api/all_stories');
}
storyFactory.all = function() {
return $http.get('/api/');
}
storyFactory.create = function(storyData) {
return $http.post('/api/', storyData);
}
return storyFactory;
})
.factory('socketio', function($rootScope) {
var socket = io.connect();
return {
on: function(eventName, callback) {
socket.on(eventName, function() {
var args = arguments;
$rootScope.$apply(function() {
callback.apply(socket, args);
});
});
},
emit: function(eventName, data, callback) {
socket.emit(eventName, data, function() {
var args = arguments;
$rootScope.apply(function() {
if(callback) {
callback.apply(socket, args);
}
});
});
}
};
});
です私は角度1.3から1.6をアップデートしています。これは1.3でうまくいきますが、角度1.6で動作していません。角度バージョンのアップグレードに問題があります
私は上記のコントローラライン " vm.stories.push(応答); "
TypeError: vm.stories.push is not a function
at n.<anonymous> (storyCtrl.js:36)
at storyService.js:38
at Scope.$eval (angular.js:17972)
at Scope.$apply (angular.js:18072)
at n.<anonymous> (storyService.js:37)
at n.emit (universalModuleDefinition:2)
at n.onevent (universalModuleDefinition:3)
at n.onpacket (universalModuleDefinition:3)
at n.<anonymous> (universalModuleDefinition:3)
at n.emit (universalModuleDefinition:2)
は、私はあなたに応じてコードを変更していたが、これは同じエラー –
を表示Story.allである()=応答 \t \t \t .then(機能(応答){ \t \t \t \t \t \t \t vm.stories | | []; \t \t \t}); –
@MuneshKumarは、 'stories'を初期化する前に' push'を呼び出すことを意味します –