我有这样的服务:
angular.module('app').factory('ExampleService', function(){
this.f1 = function(world){
return 'Hello '+world;
}
return this;
})
Run Code Online (Sandbox Code Playgroud)
我想从JavaScript控制台测试它并调用f1()服务的功能.
我怎样才能做到这一点?
我正在使用AngularJS来构建与传统Flex应用程序交互的HTML控件.Flex应用程序中的所有回调都必须附加到DOM窗口.
例如(在AS3中)
ExternalInterface.call("save", data);
Run Code Online (Sandbox Code Playgroud)
将会通知
window.save = function(data){
// want to update a service
// or dispatch an event here...
}
Run Code Online (Sandbox Code Playgroud)
在JS resize函数中,我想发送一个控制器可以听到的事件.似乎创建服务是最佳选择.你能从AngularJS外部更新服务吗?控制器可以监听服务中的事件吗?在一个实验(点击小提琴)我做了似乎我可以访问服务,但更新服务的数据不会反映在视图中(在示例中<option>应该添加到<select>).
谢谢!
我在我的角度应用程序中创建了一个工厂/服务.
我想在浏览器中调试它.有没有办法可以访问它的实例并检查其功能和变量的值.
可以使用角度范围访问角度范围
angular.element(e).scope()
Run Code Online (Sandbox Code Playgroud)
是否有类似的方式访问工厂?
我定义了一个名为"greeting"的客户服务,但无法从$ injector.get('greeting')获取实例.它会抛出这样的错误:未知提供者:greetingProvider < - 问候语.那么这是获得它的正确方法?以下是代码:
var app = angular.module('myDI', []);
app.config(function($provide){
$provide.provider('greeting', function(){
this.$get = function(){
return function(name) {
console.log("Hello, " + name);
};
};
});
});
var injector = angular.injector();
var greeting = injector.get('greeting');
greeting('Ford Prefect');
Run Code Online (Sandbox Code Playgroud) 我有一项Utils非常繁重的服务。我想在特定用户操作上使用其中定义的一些功能。由于这项服务很重,我想懒惰地实例化它(根据用户操作)。
我如何实现这一目标?
服务
module.service('Utils', function (dep1, dep2) {
this.method1 = function () {
// do something
}
// other methods
});
Run Code Online (Sandbox Code Playgroud)
控制器
module.controller('AppCtrl', function ($scope) {
// I don't want to inject Utils as a dependency.
$scope.processUserAction = function () {
// If the service is not instantiated
// instantiate it and trigger the methods defined in it.
}
});
Run Code Online (Sandbox Code Playgroud)
标记
<div data-ng-controller="AppCtrl">
<button data-ng-click="processUserAction()"> Click Me </button>
</div>
Run Code Online (Sandbox Code Playgroud) dependency-injection objectinstantiation angularjs angular-services