使用值以角度调用工厂的功能

时间:2016-09-30 14:03:58

标签: angularjs angularjs-service angularjs-controller angularjs-factory

我试图使用值从控制器调用工厂函数,但我得到一个TypeError 的 Controllercode

   $scope.onButtonHovered = function(event){
console.log("event.descriptorName "+ event.descriptorName);
            console.log("SERVICES[event.descriptorName].name "+ SERVICES[event.descriptorName].name);
            $scope.service = SERVICES[event.descriptorName].name;
            $scope.btnOptions = $scope.service.buttonOptions();
            }

打印: event.descriptorName HOME

SERVICES [event.descriptorName] .name homeService

VM92009 angular.js:13642 TypeError:$ scope.service.buttonOptions不是函数

服务

angular.module('ht.constants').
    value('SERVICES',{
                        HOME : {name : 'homeService', descriptor : {}},
CONTACT: {name : 'contactService', descriptor : {}},
                    });

厂:

     angular.module('ht.home').
        factory('homeService', [ HomeService]);
    var homeService= {}
        function HomeService() {
     homeService.buttonOptions = function(){
                if(homeData==null)
                    init();
                return homeData;
            }
return homeService;
    }

我试图使用一个控制器调用多个服务,同时打印im得到预期,但当我添加相同的工厂函数我得到错误。 谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

更改此行

var keys = Set<URLResourceKey>()
keys.insert(URLResourceKey.isDirectoryKey)
do{
    let URLResourceValues = try fileURL.resourceValues(forKeys: keys)
    }catch _{

   }

到这个

$scope.service = SERVICES[event.descriptorName].name;

答案 1 :(得分:0)

$scope.btnOptions = eval($scope.service).buttonOptions();
eval做了这个伎俩。 谢谢大家帮助我。