使用 angular 和 requirejs
Using angular with requirejs
我有一个使用 require
的普通 JS class
//a.js
(function() {
define(function() {
var vaz = function(dependency){
var myFact = function(){
// doing a new Dependency();
}
return myFact;
};
return ['dependency',vaz];
});
}());
现在我正在创建一个 angular 模块:
define([<a.js>], function(A){
var mod = angular.module('myMod');
mod.factory("myFact", A);
mod.run([function(){
new A() // gives an error 'A is not a constructor'
new A[1]() //gives an error 'dependency is not a constructor'
}])
})
这给了我一个错误,说 a 不是构造函数,因为它是遗留代码,所以我不允许修改 a.js。
请帮忙。
如果依赖项的原型正确设置了 constructor
属性,这应该有效:
define([<a.js>], function(A){
var mod = angular.module('myMod');
mod.factory("myFact", A);
mod.run(['$injector', function[function($injector){
var dep = $injector.get("dependency");
var new A[1](dep.constructor);
}])
})
但如果不是这种情况,您将无法在不修改遗留代码的情况下做到这一点。 (也许你可以在 dependency
的原型上设置构造函数 属性 而没有太多副作用)
我有一个使用 require
的普通 JS class//a.js
(function() {
define(function() {
var vaz = function(dependency){
var myFact = function(){
// doing a new Dependency();
}
return myFact;
};
return ['dependency',vaz];
});
}());
现在我正在创建一个 angular 模块:
define([<a.js>], function(A){
var mod = angular.module('myMod');
mod.factory("myFact", A);
mod.run([function(){
new A() // gives an error 'A is not a constructor'
new A[1]() //gives an error 'dependency is not a constructor'
}])
})
这给了我一个错误,说 a 不是构造函数,因为它是遗留代码,所以我不允许修改 a.js。 请帮忙。
如果依赖项的原型正确设置了 constructor
属性,这应该有效:
define([<a.js>], function(A){
var mod = angular.module('myMod');
mod.factory("myFact", A);
mod.run(['$injector', function[function($injector){
var dep = $injector.get("dependency");
var new A[1](dep.constructor);
}])
})
但如果不是这种情况,您将无法在不修改遗留代码的情况下做到这一点。 (也许你可以在 dependency
的原型上设置构造函数 属性 而没有太多副作用)