gpt4 book ai didi

javascript - 在 AngularJs Controller 中使用外部类

转载 作者:行者123 更新时间:2023-11-29 19:14:09 25 4
gpt4 key购买 nike

我不太了解如何注入(inject)外部构造函数,我有这个构造函数:

function myAudio(url){
var song = new Audio();
song.crossOrigin = "anonymous";
song.src = url;
var source = context.createMediaElementSource(song);
source.connect(context.destination);

this.play = function(){
source.mediaElement.play();
}

}

在外部,仅使用 Javascript 就可以正常工作。我可以使用 var myVar = new myAudio("some_url")

创建对象

我想在 AngularJS Controller 中使用该构造函数,但我不知道该怎么做。

我尝试在 Controller 中声明它但没有成功

app.controller("myAppCtrl", myMainFunction);
myMainFunction.$inject = ["$interval", "myAudio"];
function myMainFunction($interval, myAudio) {
scope = this;
//my controller stuff
}

试图让它返回一个对象,但我没有找到正确的方法。

我不知道我错过了什么......

最佳答案

类似的东西

app.factory('MyAudio', function() {
function MyAudio(url){
var song = new Audio();
song.crossOrigin = "anonymous";
song.src = url;

this.source = context.createMediaElementSource(song);
this.source.connect(context.destination);
}

MyAudio.prototype.play = function(){
this.source.mediaElement.play();
};

return MyAudio;
});

app.controller("myAppCtrl", myMainFunction);
myMainFunction.$inject = ["$interval", "MyAudio"];
function myMainFunction($interval, MyAudio) {
this.myAudio = new MyAudio('/some/url.mp3');
this.myAudio.play();
// controller stuff
}

关于javascript - 在 AngularJs Controller 中使用外部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36669381/

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