0

延期された約束がディレクティブで解決されるのを待つコントローラーを作成しようとしています。しかし、私が得たのはサイレントエラーだけで、コントローラーとディレクティブの両方が実行または何もできませんでした。

app.coffee

angular.module('myApp', [
    'ngRoute'
    'myApp.filters'
    'myApp.services'
    'myApp.directives'
    'myApp.controllers'
]).config [ '$routeProvider', ($routeProvider) ->

        $routeProvider.when '/',
            template: '<div></div>'
            controller: 'MyCtrl1'
            resolve:
                CM: ['CM', (CM) ->
                        CM
                    ]
        return
])

コントローラー.コーヒー

angular.module('myApp.controllers', [])
.controller('MyCtrl1', ['$scope', 'CM', ($scope, CM) ->
    # do stuff with a resolved CM
])

ディレクティブ.コーヒー

angular.module('myApp.directives', [])
.directive('myDirv', ['CMd', (CMd) ->
    (scope, elm, attrs) ->
        CMd.CMObject.applyToDiv elm
        CMd.deferred.resolve CMd.CMObject
        scope.apply() # I've tried it with and without scope.apply()
        return
])

サービス.コーヒー

angular.module('myApp.services', [])
.service('CMd', ['$q', ($q) ->
    @CMObject = CMObject
    @deferred = $q.defer()
    return
])
.factory('CM', ['CMd', (CMd) ->
    CMd.deferred.promise 
])

これにより、コントローラーとディレクティブの両方がサイレントに失敗するのはなぜですか? コントローラーが解決を正しく待機するようにするにはどうすればよいですか?

4

0 に答える 0