gpt4 book ai didi

javascript - 向 $resource 原型(prototype)添加一个函数

转载 作者:行者123 更新时间:2023-11-30 07:24:11 24 4
gpt4 key购买 nike

我正在尝试向 Angular $resource 添加一个 View 函数。我通过原型(prototype)将它添加到 $resource 但由于某种原因,原型(prototype)函数中的“this”引用不正确,因此所有属性都未定义。奇怪的是,尽管在 console.log 中,this 似乎具有正确返回所需的所有属性。

http://plnkr.co/edit/YsTlAztjEKjn3piQAem2?p=preview

app.factory("Now", function($resource) {

var Now = $resource("http://date.jsontest.com/");

Now.prototype.$dateTime = function() {
console.log("2", this); // this has date and time properties, good
return this.date + " " + this.time;
};

return Now;
});

app.controller("TestController", function(Now) {
var now = new Now();
now.$get();
console.log("1", now); // prototype has the $dateTime function!
console.log("3", now.$dateTime()); // but it returns undefined, bad
});

最佳答案

实际上,您的错误是您在资源返回数据之前调用了 $dateTime。

查看此 plunk

我上面的答案似乎有效的唯一原因是它正在被插值,当资源最终返回时,datetime 函数被再次调用。但是如果你让代码保持不变,它仍然会失败

关于javascript - 向 $resource 原型(prototype)添加一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23899085/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com