簡體   English   中英

角度形式的自定義類型控制器在部署時失敗

[英]Angular-Formly Custom Type Controller Fails on Deployment

我將這個示例用於角度形式的網站上給出的重復部分。 在我的app.config中,我正在創建一個像這樣的新類型:

var unique = 1;

formlyConfigProvider.setType({
  name: 'repeatSection',
  templateUrl: 'app/rawMaterial/repeatSection.html',
  controller: function($scope) {
    $scope.formOptions = {formState: $scope.formState};
    $scope.addNew = addNew;

    $scope.copyFields = copyFields;


    function copyFields(fields) {
      fields = angular.copy(fields);
      addRandomIds(fields);
      return fields;
    }

    function addNew() {
      $scope.model[$scope.options.key] = $scope.model[$scope.options.key] || [];
      var repeatsection = $scope.model[$scope.options.key];
      var lastSection = repeatsection[repeatsection.length - 1];
      var newsection = {};
      if (lastSection) {
        newsection = angular.copy(lastSection);
      }
      repeatsection.push(newsection);
    }

    function addRandomIds(fields) {
      unique++;
      angular.forEach(fields, function(field, index) {
        if (field.fieldGroup) {
          addRandomIds(field.fieldGroup);
          return; // fieldGroups don't need an ID
        }

        if (field.templateOptions && field.templateOptions.fields) {
          addRandomIds(field.templateOptions.fields);
        }

        field.id = field.id || (field.key + '_' + index + '_' + unique + getRandomInt(0, 9999));
      });
    }

    function getRandomInt(min, max) {
      return Math.floor(Math.random() * (max - min)) + min;
    }
  }

  });

在本地計算機上一切正常,但是當我部署到Heroku時,出現以下錯誤:

Error: [$injector:unpr] Unknown provider: aProvider <- a

如果我從類型定義中刪除controller:部分,錯誤將消失。 離開controller:定義但將其所有內容注釋掉仍會引發錯誤。

我正在使用帶有默認Grunt任務的angular-fullstack yeoman生成器。

如果你是基於預期的服務叫做拋出錯誤a ,這是微小的在AngularJS生態系統的影響。 我懷疑$scope會被縮小為a 要保留$scope ,請使用“最小安全”注入簽名定義控制器。 有多種方法可以執行此操作,但這是一種常見模式。 注意以下幾點...

controller: ['$scope', function($scope) {
    /* ... */
}])

JSFiddle Link-簡單的演示再現錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM