我$resource
在单个文件中的一个名为“App.API”的模块中定义了一组角度,因为它是生成的,所以我无法触摸。(使用loopback-angular
,一个从服务器端模型定义生成角度 $resource 的工具)
让我们以Product
依赖项为例,稍后在应用程序中,我想覆盖它的原型,如下所示:
module('App.NewModule', ['App.API']).run(['Product', function(Product) {
Product.prototype.getTitle = function() {
return 'Product name is ' + this.name;
};
// From now on I can use p.getTitle() on every Product $resource
});
有用。
问题是,我有许多不同的文件,每个文件都包含模块,并且遇到了依赖注入问题:我可以访问getTitle
内部的函数NewModule
,但不能访问其他模块内部的函数。
问题:如何覆盖依赖对象原型并使其可用于其他模块?
我试图以这种方式定义原型函数,认为Product
原型会被修改。也许还不够早:
module('App.API').run(['Product', function(Product) {
Product.prototype.getTitle = function() {
return 'Product name is ' + this.name;
};
});
它不起作用:getTitle
在实例上使用另一个模块(使用 App.API/Product 作为依赖项)Product
仍然会引发undefined is not a function
错误,即使Product
对象被正确注入。