3

我正在使用 AngularJS 和 Typescript 开发一个 Web 应用程序,并且我试图找到在定义控制器时利用 Typescript 的最佳方法。直观地说,控制器只是一个 TypeScript 类,但 AngularJS 希望您将所有内容放入 $scope 变量中。

在 AngularJS (1.1.5) 的最后一个 Alpha 版本中,他们添加了一个新的 'controller as' 语法。我听说这种新语法应该有助于与 Coffeescript 和 TypeScript 等语言集成,但我不太明白如何。如果有人有使用 TypeScript 或 CoffeeScript 的新语法的示例,或者可以提供一些关于如何完成它的见解,我将不胜感激。

谢谢!

4

2 回答 2

3

是的,它工作正常。只需创建您的类,例如 MainController。然后在您的视图中使用 ng-controller='MainController as vm'。MainController 类的所有属性都成为 $scope.vm 的成员

于 2013-05-30T03:42:35.967 回答
1

这就是使用 CoffeeScript 类对我有用的方法。

class MainCtrl
  newThing: ""
  constructor: (@model)->

  someThings: ->
    @model.awesomeThings

  addThing: ->
    @model.addThing(@newThing)


app.controller 'MainCtrl', ['ThingService', (model)-> 
    new MainCtrl(model)
]

你可以在我的plunk上看到完整的例子。

于 2013-06-03T23:50:39.787 回答