我正在研究AngulaJS中的模型服务。我使用工厂nad我想使用angular.extend()
的东西向$resource
对象添加属性/属性。
问题是我无法访问添加的属性:
var myObject = $resource(...);
angular.extend(myObject.prototype, {
hi : "hi",
findFriend : function(){ console.log("You are all alone...") }
}
我无法在控制器中访问“hi”或“findFriend”,也无法使用console.log()访问工厂。
但如果我这样做:
var myObject = $resource(...);
angular.extend(myObject, {
hi : "hi",
findFriend : function(){console.log("It works"}
}
然后我就可以访问这些属性了。如果良好做法是第二个,那么有什么区别:
var myObject = $resource(...);
myObject.hi = "hi";
myObject.findFriend("It works");
我阅读了文档并遵循了this article to build my model。
有人可以解释为什么一个工作而不是另一个工作?为什么它似乎与文章不同?
谢谢:)
答案 0 :(得分:1)
这是因为你的var myObject
不是类的实例,所以扩展原型会为实例添加方法而不是类。 $ resource返回" class"对象,因此您需要使用new myObject()实现myObject的实例。