1

このエラーは、縮小されたコード (本番) でのみ発生します。Formly 内に 'controller' 関数を追加したときにバグが作成されました.私のコードを調べてください.バグが見つかるかもしれません..どんなヒントも役に立ちます;)

依存関係: "angular-formly": "~7.1.2", "angular-formly-templates-bootstrap": "~6.1.0",

コントローラーの私のコード:

.controller('NSearchBoxOnResultsController', ($rootScope) ->
    @formFields =
      [
        type: 'form_with_own_classes'
        key: 'q'
        defaultValue: @resultAsValue
        templateOptions:
          type: 'string'
          label: ''
          placeholder: I18n.t('homepage.placeholder')
          wrapper_class: 'row input--primary modal__center-items search search_query'
          input_container_class: 'col-xs-12'
          onKeypress: ($viewValue, $modelValue, scope, event) =>
            if event?.which == 13
              @submit()
        controller: ($scope, $rootScope) =>
          @scope = $scope
          @rootScope = $rootScope
          @rootScope.$on('$locationChangeSuccess', (newValue, oldValue) =>
            if @scope.options?.formControl
              @hash = window.location.hash.split('/')
              @queryFromHash = @hash.slice(2, @hash.length).join('/')
              @resultAsValue = decodeURIComponent(@queryFromHash)
              @scope.options.formControl.$setViewValue(@resultAsValue)
              @scope.options.formControl.$rollbackViewValue()
          )
      ]

    @submit = =>
      window.location = "/search/#all/#{@search.q}"

    @
  )
4

1 に答える 1

3

$rootScope を明示的に注入する必要があります。

それ以外の($rootScope) -> {code...}

使用する

['$rootScope', ($rootScope) -> {code...}]

それ以外の場合、変数名から「$rootScope」依存関係が暗示されます。縮小中に $rootScope が $t になるため、Angular は、存在しない '$t' を注入する必要があることを意味します。

インジェクションを自動的に「説明」する google ng-annotate 。

編集:私はcoffeescriptに慣れていないので、ご容赦ください:)

于 2015-11-09T09:02:57.617 に答える