我是Angularjs世界的新手。我想從angularjs控制器中獲取一些數據給Angularjs Factory.Controller和factory在不同的js文件中定義。從工廠如何從控制器獲取數據到angularjs工廠
代碼(文件名的application.js)
var app=angular.module('myApp',[])
app.factory('autoCompleteDataService', [function(MyController) {
return {
getSource: function() {
return MyController.getFirstName();
}
}
}]);
app.directive('autoComplete', function(autoCompleteDataService) {
return {
restrict: 'A',
link: function(scope, elem, attr, ctrl) {
$(elem).autocompleteArray(autoCompleteDataService.getSource(), {
minLength: 2
});
}
}})
控制器代碼(文件名Controller.js)
function MyController($scope){
this.getFirstName= function()
{
var arrayFName=[];
for(var k=0;k< $scope.MyData.length;k++)
{
arrayFName.push($scope.MyData[k].fname);
}
return arrayFName;
}
邁德特是陣列包含關於 'FNAME'
一些硬編碼值,當我跑此代碼得到錯誤「錯誤:myController的未定義「。如果是的話,是否可以從控制器獲取數據?
你不想從控制器獲取數據,你想從服務到控制器獲取數據。你也應該在Angular模塊上定義你的控制器:'app.controller('myController',['$ scope',function($ scope){...}])' –