Angularjs[13] - 定义服务 $provide 中 provider 方法

本文介绍了AngularJS中服务的概念及其实现方式,包括自定义服务的过程和依赖注入机制的运用。通过示例展示了如何创建并使用自定义服务,解释了$provide对象的作用及其provider方法的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务本身是一个任意的对象,ng提供的服务过程涉及它的依赖注入机制。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div ng-app="myApp">
        <div ng-controller="firstController">
            {{name}}
        </div>
    </div>

<script type="text/javascript" src="../../vendor/angular/angularjs.js"></script>
<script type="text/javascript" src="app/index.js"></script>
</body>
</html>
var myApp = angular.module('myApp',[],function ($provide) {
    //自定义服务
    $provide.provider('CustomService',function () {
        this.$get = function () {
            return{
                message : 'CustomService Message'
            }
        }
    })
});

myApp.controller('firstController',function ($scope,CustomService) {
    $scope.name = 'Alrale';
    console.log(CustomService);
});

  • angular 用 $provide 对象来实现自动依赖注入机制,注入机制通过调用一个 provider 的 $get() 方法,把得到的对象作为参数进行相关调用。
  • $provide.provider() 是一种定义服务的方法,$provide 还提供了很多很简单的方法,可以直接被 module 多引用。更多使用 factory, server 方法

 

转载于:https://www.cnblogs.com/bky-1083/p/6352277.html

# Makefile for OpenWrt # # Copyright (C) 2007 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # TOPDIR:=${CURDIR} LC_ALL:=C LANG:=C export TOPDIR LC_ALL LANG empty:= space:= $(empty) $(empty) $(if $(findstring $(space),$(TOPDIR)),$(error ERROR: The path to the OpenWrt directory must not include any spaces)) world: include $(TOPDIR)/include/host.mk export PATH:=$(TOPDIR)/staging_dir/host/bin:$(PATH) include product.mk ifneq ($(OPENWRT_BUILD),1) _SINGLE=export MAKEFLAGS=$(space); override OPENWRT_BUILD=1 export OPENWRT_BUILD GREP_OPTIONS= export GREP_OPTIONS include $(TOPDIR)/include/debug.mk include $(TOPDIR)/include/depends.mk include $(TOPDIR)/include/toplevel.mk else include rules.mk include $(INCLUDE_DIR)/depends.mk include $(INCLUDE_DIR)/subdir.mk include target/Makefile include package/Makefile include tools/Makefile include toolchain/Makefile $(toolchain/stamp-install): $(tools/stamp-install) $(target/stamp-compile): $(toolchain/stamp-install) $(tools/stamp-install) $(BUILD_DIR)/.prepared $(package/stamp-compile): $(target/stamp-compile) $(package/stamp-cleanup) $(package/stamp-install): $(package/stamp-compile) $(target/stamp-install): $(package/stamp-compile) $(package/stamp-install) printdb: @true prepare: $(target/stamp-compile) clean: FORCE rm -rf $(BUILD_DIR) $(BIN_DIR) $(BUILD_LOG_DIR) dirclean: clean rm -rf $(STAGING_DIR) $(STAGING_DIR_HOST) $(STAGING_DIR_TOOLCHAIN) $(TOOLCHAIN_DIR) $(BUILD_DIR_HOST) $(BUILD_DIR_TOOLCHAIN) rm -rf $(TMP_DIR) ifndef DUMP_TARGET_DB $(BUILD_DIR)/.prepared: Makefile @mkdir -p $$(dirname $@) @touch $@ tmp/.prereq_packages: .config unset ERROR; \ for package in $(sort $(prereq-y) $(prereq-m)); do \ $(_SINGLE)$(NO_TRACE_MAKE) -s -r -C package/$$package prereq || ERROR=1; \ done; \ if [ -n "$$ERROR" ]; then \ echo "Package prerequisite check failed."; \ false; \ fi touch $@ endif # check prerequisites before starting to build prereq: $(target/stamp-prereq) tmp/.prereq_packages @if [ ! -f "$(INCLUDE_DIR)/site/$(REAL_GNU_TARGET_NAME)" ]; then \ echo 'ERROR: Missing site config for target "$(REAL_GNU_TARGET_NAME)" !'; \ echo ' The missing file will cause configure scripts to fail during compilation.'; \ echo ' Please provide a "$(INCLUDE_DIR)/site/$(REAL_GNU_TARGET_NAME)" file and restart the build.'; \ exit 1; \ fi prepare: .config $(tools/stamp-install) $(toolchain/stamp-install) world: prepare $(target/stamp-compile) $(package/stamp-compile) $(package/stamp-install) $(target/stamp-install) FORCE $(_SINGLE)$(SUBMAKE) -r package/index # update all feeds, re-create index files, install symlinks package/symlinks: $(SCRIPT_DIR)/feeds update -a $(SCRIPT_DIR)/feeds install -a # re-create index files, install symlinks package/symlinks-install: $(SCRIPT_DIR)/feeds update -i $(SCRIPT_DIR)/feeds install -a # remove all symlinks, don't touch ./feeds package/symlinks-clean: $(SCRIPT_DIR)/feeds uninstall -a tplink-clean: find package/tplink -maxdepth 1 -mindepth 1 -type d | grep -v '.svn' | grep -v 'wl' | xargs -i make {}/clean .PHONY: clean dirclean prereq prepare world package/symlinks package/symlinks-install package/symlinks-clean endif 这个makefile是buildtools自动生成的吗
07-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值