angular directive 怎么调用service

angular directive 怎么调用service,第1张

// 创建一个angularjs的module

var module = angular.module('my.new.module', [])// 这里的第二个空数组参数一定要有

下一步,我们来创建一个新的service(服务)。假设我们上面的这个module是用来管理图书的。所以,这里我们来创建一个Book Service,然后把一个JSON对象数组添加到这个service中。

module.service('Book', [

'$rootScope',

function($rootScope) {

var service = {

books: [{

title: 'Magician',

author: 'Raymond E, Feist'

}, {

title: 'The Hobbit',

author: 'J.R.R Tolkien'

}],

addBook: function(book) {

service.books.push(book)

$rootScope.$broadcast('books.update')

}

}

return service

}

])

AngularJS是一款非常强大的前端MVC框架。同时,它也引入了相当多的概念,这些概念我们可能不是太熟悉。(译者注:老外真谦虚,我大天朝的码农对这些概念那是相当熟悉啊!)这些概念有:

Directive(指令)

Controller(控制器)

Service (服务)

我们首先来创建一个module(模块),本文中的所有代码都会用到这个module。

var module = angular.module( "my.new.module", [] )

下一步,我们来创建一个新的service(服务)。假设我们上面的这个module是用来管理图书的。所以,这里我们来创建一个Book service,然后把一个JSON对象数组添加到这个serice中,这些对象代表很多book数据

module.service( 'Book', [ '$rootScope', function( $rootScope ) {

var service = {

books: [

{ title: "Magician", author: "Raymond E. Feist" },

{ title: "The Hobbit", author: "J.R.R Tolkien" }

],

addBook: function ( book ) {

service.books.push( book )

$rootScope.$broadcast( 'books.update' )

}

}

return service

}])

0,把service中的数据传给组件:

1, 创建Service.ts file

--所有需要维护的数据

--一个数据对应一个EventEmitter

--对数据的set,get或其他 *** 作

2,创建trigger component 该文件用于关联html和ts中的emit,html中绑定了onSetToActive方法,在onSetToActive方法中调用service中的event。

3,trigger事件被创建, 接下来创建listen方法监听。

用对应EventEmitter的subscribe方法监听,在subscribe方法中写监听到后,具体对service数据的 *** 作,一般这个 *** 作是写在service.ts中。

备注:

有关service的dependecy inject

1,创建service

2,引入module(import),引入provider,在construc中引入(别忘加private)

3,引入module(import),在construc中需要每用到一次都引入,但providers只要在最顶层引入即可(子组件都可以用)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/bake/11481420.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存