在我的services.js
文件中,我有以下$resource
来连接我的RestAPI ...
app.factory('Profile', function ($resource) {
console.log("here");
var Bear = $resource('http://192.168.0.11:3000/api/bears/:id', {id:'@id'});
Bear.save({name:"Yogi"});
});
现在,我正在尝试测试它是否正常工作,但永远不会达到console.log("here");
。
这是我的app.js
文件,其中包含我的控制器...
var app = angular.module('starter',
[
'ionic',
'ngResource'
]
);
app.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
});
});
正如您所看到的,我包含了ngResource
,但仍未调用工厂方法。我做错了什么?
答案 0 :(得分:2)
正如@Phil所说,你的工厂只是在那里无所事事,因为:
解决方案:将其注入$ ionicPlatform
旁边的app.run块Profile
工厂。 解决方案:将services.js中的代码更改为:
app.factory('Profile', function ($resource) {
var saveBear = function(){
console.log("here");
var Bear = $resource('http://192.168.0.11:3000/api/bears/:id',{id:'@id'});
Bear.save({name:"Yogi"});
}
return {
saveBear: saveBear
}
});
然后使用语句
调用运行块中的方法 Profile.saveBear();