如何在 angular 的控制器中使用用户定义的类实例/对象
How to use user-defined class instances/objects inside angular's controllers?
我用三个.js threeDimView
编写了一个类,其中包含我的场景、摄像机等。我在JS代码中创建了此类threeDimView_
的全局对象。
threeDimView_ = new threeDimView();
现在我想在另一个div 中显示与此相关的一些信息。
如何获取此对象 - threeDimView_
到我的控制器以获取此信息div?
function infoController(threeDimView_, $scope)
如果我将其与$scope
一起传递给控制器,则会出现错误:
Error: Unknown provider: threeDimView_Provider <- threeDimView_
我喜欢
@khanh的回答,但我可能会建议使用角度工厂,而不是服务。 下面是一个示例:
没有全局范围:
app.factory('threeDimView', function(){
return new threeDimView();
});
具有全球范围:
var _threeDimView_ = new threeDimView();
app.factory('threeDimView', function(){
return _threeDimView_;
});
然后,您可以在控制器中声明依赖项,如下所示:
function infoController($scope, threeDimView){
// use the threeDimView object (its already instantiated)
}
您可以尝试将其配置为服务,如下所示:
var app = angular.module("yourapp",[]);
app.service("threeDimView",threeDimView);
每当您想在控制器中使用它时,只需将其声明为参数:
function infoController(threeDimView, $scope)
将对象注入控制器而不是访问全局变量或在函数中创建对象的想法是允许单元测试。
相关文章:
- 使用具有用户定义字段的新请求者创建新的Zendesk票证
- jquery返回ajax响应和用户定义的变量到函数
- 如何使用用户定义的值来增加Javascript中的值
- 从 DOM 中删除/删除 Javascript 用户定义的数组
- 用户定义的函数在 Angular Cordova 中不起作用
- 如何在asp.net中的用户定义的数据网格中使列可编辑
- 如何使用用户定义的相等函数在Javascript中创建一组用户定义的对象
- 谷歌标记不显示用户定义的点
- 在HTML中创建用户定义的表
- 如何将用户定义的键和值添加到数组中
- 反应.js组件:用户定义的属性.我做得对吗
- 为用户定义的热点选择平台/语言
- 哪些免费的 JavaScript IDE 支持用户定义变量的自动完成,以及“跳转到定义”
- 如何查找函数是内置函数还是用户定义的函数
- 如何在 angular 的控制器中使用用户定义的类实例/对象
- 我想使用 JavaScript 从用户定义特殊字符更改字符串
- 在 Express 服务器上上载期间使用用户定义的名称重命名文件
- 如何在 JavaScript 中调用窗口对象的用户定义函数
- 在指令中,处理对用户定义的方法名称的调用
- 如何将JMeter的用户定义变量传递给Javascript