1
咖啡腳本爲我們提供了創建和使用類的方法。我試圖用這個方法,並在不同的文件中定義類使用它們的服務:CoffeeScript定義角度服務的方式
class @Account
isLoaded: no
blahblah: ->
....
app.service('Account', ['$cookieStore', '$http', Account])
在申請的大多數實體很常見的問題,是一些CRUD操作。由於我使用的服務(如果它們是單身人士和工廠,如果他們不是)來描述這些實體,我現在面臨的問題是從$ resource擴展我的服務類。很顯然,我不能只用它在標準的CoffeeScript的方式:
class @Account extends $resource
而現在我發現的唯一的解決辦法是改變類原型模塊配置:
app.service('Account', ['$cookieStore', '$http', Account])
app.run (Account, $resource) ->
Account.prototype = new ($resource API_PATH + '/asdasdasd')
其中,使我在這之後我只能使用所有$資源特性的問題,而不是服務的類構造函數。因此,我應該定義一些額外的setup
方法並在此處手動調用它。
第二個問題是所有噴射器得到了在構造函數傳遞,因此,所有的類方法需要使用注射器應INSIDE構造函數
constructor: ($cookieStore, $http) ->
console.log 'constructed'
@addresses = [
new AccountAddress('billing')
new AccountAddress('shipping')
]
@fetch = ->
console.log 'here I can use $cookieStore and $http'
foo: ->
console.log 'here I can`t use $cookieStore and $http'
被定義而這並不好看。
有沒有辦法解決這個問題?
此主要想法是從第一個答案採取this google groups thread
就個人而言,我會極大地阻止你使用角度類 - 根據我的經驗,它只是不協調。 – Florian
@弗洛裏安,似乎是這樣。但也許在結束這個想法之前,我決定至少問社區。誰知道,也許有我看不到的方法) – SET
嗯,我在最近的一個項目中嘗試過(沒有成功) - 如果你主要關心的是有多個文件用於多個服務,你可以在build上合併它們。 – Florian