6

私はCoffescriptクラスでangularjsを試していました

コーヒースクリプトを使ったインジェクションと成功例ができました。しかし、$scope にアクセスするには、コンストラクター内に関数を記述する必要があります。そこから抜け出すために私にできること。他に良い書き方があれば教えてください。

これが私の作業中のcoffeescriptコードです

class PersonCtrl
    @$inject = ['$scope']

    constructor: (@scope) ->
        @scope.persons = [
            firstName:"Kunjan"
            lastName:"Dalal"
        ,
            firstName:"Kunj"
            lastName:"Dalal"
        ]

        @scope.addPerson = () =>
            @scope.persons.push angular.copy @scope.person 

さらに詳細が必要な場合はお知らせください。

4

1 に答える 1

11

次の構文を使用しました。

app = angular.module 'myapp', []

class MySimpleCtrl

  @$inject: ['$scope'] 
  constructor: (@scope) ->
    @scope.demo = 'demo value'
    @scope.clearText = @clearText

  clearText: =>
    @scope.demo = ""

app.controller 'MySimpleCtrl', MySimpleCtrl

angular.bootstrap document, ['myapp']

この jsFiddle を見てください: http://jsfiddle.net/jwcMA/

UPDATE @oto-brglez .bootstrap() 呼び出しは、<html>タグの ng-app を置き換えます

UPDATE @TylerCollier、これはしばらく前のことでしたが、今ではおそらくController As表記を使用します(またはTypeScript!)

コーヒー

class PetController 
    constructor: (@$scope) ->
        @pets = ['Fido','Felix']
    addPet: (pet) ->
        @pets.push(pet)

HTML

<div ng-controller="PetController as pc">
...
<li ng-repeat="pet in pc.pets">
于 2013-08-12T18:01:42.880 に答える