Javascript AngularJS:undefined不是工厂提供的函数
我的工厂中有多个函数,我无法使用ng click从按钮单击调用saveCharacter函数。getCharacters函数工作正常。很抱歉提前转贴,我已经看过很多不同的例子,无法解决我的具体问题与这些。当我记录xmlService时,我可以看到我的函数,但我不确定它为什么不会调用它。我试图用saveCharacter返回一个PHP文件的帖子,但改为字符串返回,以测试我的问题是什么 再次感谢您的帮助Javascript AngularJS:undefined不是工厂提供的函数,javascript,angularjs,angularjs-factory,Javascript,Angularjs,Angularjs Factory,我的工厂中有多个函数,我无法使用ng click从按钮单击调用saveCharacter函数。getCharacters函数工作正常。很抱歉提前转贴,我已经看过很多不同的例子,无法解决我的具体问题与这些。当我记录xmlService时,我可以看到我的函数,但我不确定它为什么不会调用它。我试图用saveCharacter返回一个PHP文件的帖子,但改为字符串返回,以测试我的问题是什么 再次感谢您的帮助 (function(){ var app = angular.module('arena',
(function(){
var app = angular.module('arena', []);
app.factory('xmlService', function($http){
var factory = {};
factory.getCharacter = function getCharacter(){
return $http.get('xml/characterTemplate.xml');
};
factory.saveCharacter = function saveCharacter(){
return "hello";
//return $http.post('php/crud.php');
};
return factory;
});
app.controller('FighterController', ['$scope','xmlService', function($scope, xmlService){
this.fighterList = fighterList;
$scope.saveFighter = function saveFighter(){
console.log(xmlService);
xmlService.saveCharacter.success(function(data){
console.log(data);
});
}
function loadFighters(){
xmlService.getCharacter().success(function(data){
var x2js = new X2JS();
var charactersList = x2js.xml_str2json(data);
for(var i = 0; i < charactersList.characters.character.length; i++)
{
var currentFighter = charactersList.characters.character[i];
fighterList.push(currentFighter);
}
$scope.FighterController = charactersList;
});
}
loadFighters();
}]);
var fighterList = [
];
})();
这是否允许我访问视图端返回的数据?我是否必须重置saveFighter功能中的作用域才能使按钮工作
我是否正确设置了app.controller的依赖项,以及依赖项注入是否正确
谢谢大家,任何关于我的代码是如何设置的评论都将不胜感激 您缺少使用
()
将代码更改为:
$scope.saveFighter = function saveFighter(){
console.log(xmlService);
xmlService.saveCharacter().success(function(data){
// ----------------------^
console.log(data);
});
}
$scope.FighterController=字符列表
将characterList的数据分配给作用域变量,并且作用域变量可以在html中访问。作用域就像控制器和视图之间的桥梁
我建议您使用
()
将代码更改为:
$scope.saveFighter = function saveFighter(){
console.log(xmlService);
xmlService.saveCharacter().success(function(data){
// ----------------------^
console.log(data);
});
}
$scope.FighterController=字符列表
将characterList的数据分配给作用域变量,并且作用域变量可以在html中访问。作用域就像控制器和视图之间的桥梁
我建议您使用
()
将代码更改为:
$scope.saveFighter = function saveFighter(){
console.log(xmlService);
xmlService.saveCharacter().success(function(data){
// ----------------------^
console.log(data);
});
}
$scope.FighterController=字符列表
将characterList的数据分配给作用域变量,并且作用域变量可以在html中访问。作用域就像控制器和视图之间的桥梁
我建议您使用
()
将代码更改为:
$scope.saveFighter = function saveFighter(){
console.log(xmlService);
xmlService.saveCharacter().success(function(data){
// ----------------------^
console.log(data);
});
}
$scope.FighterController=字符列表
将characterList的数据分配给作用域变量,并且作用域变量可以在html中访问。作用域就像控制器和视图之间的桥梁
我建议您我将我的工厂调整为这种结构,现在我可以调用我的函数了
app.factory('xmlService', function($http){
var factory = {
getCharacter: function(){
return $http.get('xml/characterTemplate.xml');
},
saveCharacter:function(){
console.log('hello?');
return $http.post('php/crud.php');
}
};
return factory;
});
在我的控制器中
$scope.saveFighter = function(){
console.log(xmlService);
xmlService.saveCharacter().success(function(data){
console.log(data);
});
}
function loadFighters(){
xmlService.getCharacter().success(function(data){
var x2js = new X2JS();
var charactersList = x2js.xml_str2json(data);
for(var i = 0; i < charactersList.characters.character.length; i++)
{
var currentFighter = charactersList.characters.character[i];
fighterList.push(currentFighter);
}
$scope.FighterController = charactersList;
});
}
loadFighters();
$scope.saveFighter=function(){
console.log(xmlService);
xmlService.saveCharacter().success(函数(数据){
控制台日志(数据);
});
}
函数loadFighters(){
xmlService.getCharacter().success(函数(数据){
var x2js=新的x2js();
var charactersList=x2js.xml\u str2json(数据);
for(变量i=0;i
我将工厂调整为这种结构,现在我可以调用我的函数了
app.factory('xmlService', function($http){
var factory = {
getCharacter: function(){
return $http.get('xml/characterTemplate.xml');
},
saveCharacter:function(){
console.log('hello?');
return $http.post('php/crud.php');
}
};
return factory;
});
在我的控制器中
$scope.saveFighter = function(){
console.log(xmlService);
xmlService.saveCharacter().success(function(data){
console.log(data);
});
}
function loadFighters(){
xmlService.getCharacter().success(function(data){
var x2js = new X2JS();
var charactersList = x2js.xml_str2json(data);
for(var i = 0; i < charactersList.characters.character.length; i++)
{
var currentFighter = charactersList.characters.character[i];
fighterList.push(currentFighter);
}
$scope.FighterController = charactersList;
});
}
loadFighters();
$scope.saveFighter=function(){
console.log(xmlService);
xmlService.saveCharacter().success(函数(数据){
控制台日志(数据);
});
}
函数loadFighters(){
xmlService.getCharacter().success(函数(数据){
var x2js=新的x2js();
var charactersList=x2js.xml\u str2json(数据);
for(变量i=0;i
我将工厂调整为这种结构,现在我可以调用我的函数了
app.factory('xmlService', function($http){
var factory = {
getCharacter: function(){
return $http.get('xml/characterTemplate.xml');
},
saveCharacter:function(){
console.log('hello?');
return $http.post('php/crud.php');
}
};
return factory;
});
在我的控制器中
$scope.saveFighter = function(){
console.log(xmlService);
xmlService.saveCharacter().success(function(data){
console.log(data);
});
}
function loadFighters(){
xmlService.getCharacter().success(function(data){
var x2js = new X2JS();
var charactersList = x2js.xml_str2json(data);
for(var i = 0; i < charactersList.characters.character.length; i++)
{
var currentFighter = charactersList.characters.character[i];
fighterList.push(currentFighter);
}
$scope.FighterController = charactersList;
});
}
loadFighters();
$scope.saveFighter=function(){
console.log(xmlService);
xmlService.saveCharacter().success(函数(数据){
控制台日志(数据);
});
}
函数loadFighters(){
xmlService.getCharacter().success(函数(数据){
var x2js=新的x2js();
var charactersList=x2js.xml\u str2json(数据);
for(变量i=0;i
我将工厂调整为这种结构,现在我可以调用我的函数了
app.factory('xmlService', function($http){
var factory = {
getCharacter: function(){
return $http.get('xml/characterTemplate.xml');
},
saveCharacter:function(){
console.log('hello?');
return $http.post('php/crud.php');
}
};
return factory;
});
在我的控制器中
$scope.saveFighter = function(){
console.log(xmlService);
xmlService.saveCharacter().success(function(data){
console.log(data);
});
}
function loadFighters(){
xmlService.getCharacter().success(function(data){
var x2js = new X2JS();
var charactersList = x2js.xml_str2json(data);
for(var i = 0; i < charactersList.characters.character.length; i++)
{
var currentFighter = charactersList.characters.character[i];
fighterList.push(currentFighter);
}
$scope.FighterController = charactersList;
});
}
loadFighters();
$scope.saveFighter=function(){
console.log(xmlService);
xmlService.saveCharacter().success(函数(数据){
控制台日志(数据);
});
}
函数loadFighters(){
xmlService.getCharacter().success(函数(数据){
var x2js=新的x2js();
var charactersList=x2js.xml\u str2json(数据);
for(变量i=0;i
您还没有真正解释如何解决此问题,因此我将对此进行解释
在这里,您试图调用xmlService.saveCharacter.success()
:
但是xmlService.saveCharacter
是一个函数。它没有success
属性<代码>成功未定义。这就是你看到的错误
您需要调用xmlService.saveCharacter()
:
但这仍然是一个问题,因为saveCharacter()