我使用用於定義我的控制器,CoffeeScript的類和它們連接到該指令(在CoffeeScript中定義)與controllerAs所以可以在模板訪問類的屬性和方法的圖案。我還使用控制器提供程序定義了這些類。這在1.2.15的角度工作很好,但是當我更新到1.3.6時崩潰了。
經過多次調試,我意識到angular不再自動將由coffeescript類返回的對象實例放到範圍中。解決方法是非常簡單的:手動將示波器上的實例化類對象,如下顯示:
myModule.directive 'cePageHeader', ->
restrict: 'A'
templateUrl: 'shared/ce-page-header.tpl.html'
replace: true
scope: true
controller: 'CePageHeaderDirectiveCtrl as cePageHeaderDirCtrl'
cePageHeaderDirectiveModule.controller 'CePageHeaderDirectiveCtrl',
(UserModel, $scope) ->
$scope.cePageHeaderDirCtrl =
new class CePageHeaderDirectiveCtrl
constructor: ->
@user = UserModel
goHome: ->
console.log "Do something to go home"
此前,該功能僅返回由類創建的對象。添加此一個固定的問題符合1.3.6:
$scope.cePageHeaderDirCtrl =
順便說一句,在模板我可以訪問我的類對象是這樣的:
<a class="navbar-brand" ng-click="cePageHeaderDirCtrl.goHome()">
Go Home
沒有手動分配到$範圍,$ scope.cePageHeaderDirCtrl = {},一個空對象。
這對我來說很好:http://stackoverflow.com/questions/27172394/javascript-doest-convert-angular-ui-datepicker-date-to-utc-correctly/29030439#29030439 – frhd 2015-03-13 22:32:36