我试图使用值从控制器调用工厂函数,但我得到一个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得到预期,但当我添加相同的工厂函数我得到错误。 谢谢你的帮助
答案 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做了这个伎俩。
谢谢大家帮助我。