2016-11-14 69 views
1

我使用的是angularjs 1.5.8,基本上模仿了一個帶有方程式的excel表格。這三行需要兩個輸入來影響兩個輸出。我正在努力編寫我的腳本以包含多個控制器,因爲我正在爲每行建立一個控制器。如果我在腳本中註釋掉第二個和第三個控制器,那麼第一行工作得很好。當沒有線條評論時,沒有任何工作。我覺得我很親密,但不知道我哪裏出錯。任何幫助,將不勝感激。Angularjs多個控制器,只有第一個工作

這裏是工作負責人:

angular.module('ADMApp', []) .controller('ADMFarViewController', [function() { var ctrl = this; ctrl.ADMCalc = function() { var ADMFarViewImgHeightvar = Number(ctrl.ADMFarViewImgHeightvar || 0); var ADMFarViewVertPixvar = Number(ctrl.ADMFarViewVertPixvar || 0); ctrl.ADM_FarViewFarthestViewer_ans = (ADMFarViewImgHeightvar * 3438)/ ADMFarViewVertPixvar; ctrl.ADM_FarViewViewRat_ans = ctrl.ADM_FarViewFarthestViewer_ans/ADMFarViewImgHeightvar; } }]);

這裏是我的plunker:https://plnkr.co/edit/6nKEPCeOqx7zEFx5M5WZ

回答

2

每次不要重新定義模塊。

// Code goes here 
var ADMApp = angular.module('ADMApp', []); 

ADMApp.controller('ADMFarViewController', [function() { 
    var ctrl = this; 
    ctrl.ADMCalc = function() { 
     var ADMFarViewImgHeightvar = Number(ctrl.ADMFarViewImgHeightvar || 0); 
     var ADMFarViewVertPixvar = Number(ctrl.ADMFarViewVertPixvar || 0); 
     ctrl.ADM_FarViewFarthestViewer_ans = (ADMFarViewImgHeightvar * 3438)/ADMFarViewVertPixvar; 
     ctrl.ADM_FarViewViewRat_ans = ctrl.ADM_FarViewFarthestViewer_ans/ADMFarViewImgHeightvar; 
    } 
}]); 



ADMApp.controller('ADMMinImgController', [function() { 
     var ctrl = this; 
     ctrl.ADMCalc = function() { 
      var ADM_MinImgHeightVertPix_var = Number(ctrl.ADM_MinImgHeightVertPix_var || 0); 
      var ADM_MinImgHeightFarthestViewer_var = Number(ctrl.ADM_MinImgHeightFarthestViewer_var || 0); 
      ctrl.ADM_MinImgHeightImageHeight_ans = (ADM_MinImgHeightVertPix_var * ADM_MinImgHeightFarthestViewer_var)/3438; 
      ctrl.ADM_MinImgHeightViewRat_ans = ADM_MinImgHeightFarthestViewer_var/ctrl.ADM_MinImgHeightImageHeight_ans; 
     } 
}]); 


ADMApp.controller('ADMMaxImgController', [function() { 
     var ctrl = this; 
     ctrl.ADMCalc = function() { 
      var ADM_MaxImgImageHeight_var = Number(ctrl.ADM_MaxImgImageHeight_var || 0); 
      var ADM_MaxImgFarthestViewer_var = Number(ctrl.ADM_MaxImgFarthestViewer_var || 0); 
      ctrl.ADM_MaxImgVertPix_ans = (ADM_MaxImgImageHeight_var * 3438)/ADM_MaxImgFarthestViewer_var; 
      ctrl.ADM_MaxImgViewRat_ans = ADM_MaxImgFarthestViewer_var/ADM_MaxImgImageHeight_var; 
     } 
}]); 
+0

你很快。但是,你應該遵循良好的做法:https://github.com/johnpapa/angular-styleguide/tree/master/a1#definitions-aka-setters – gyc

+0

謝謝。最後一個問題。爲什麼我的第二排不起作用?我嘗試過註釋某些行並讓代碼返回類似1 + 1的內容,但第二行中的第一個單元格從不返回值。 – kingsman

+0

您在ng模型中缺少view.': ' – holtc

1
angular.module('ADMApp', []) 

的代碼即行定義模塊 'ADMApp'。由於您在代碼中保留了這一行三次,因此您可以定義相同的模塊三次,有效覆蓋其之前的定義,其中包含以前添加的控制器。

將其保存在一個變量中,或使用angular.module('ADMApp')來獲取對之前定義的模塊的引用。

相關問題