Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs多个控制器,只有第一个有效_Angularjs - Fatal编程技术网

Angularjs多个控制器,只有第一个有效

Angularjs多个控制器,只有第一个有效,angularjs,Angularjs,我使用angularjs 1.5.8基本上模拟了一个包含方程式的excel表格。有三行需要影响两个输出的两个输入。当我为每一行构建一个控制器时,我正在努力编写脚本以包含多个控制器。如果我注释掉脚本中的第二个和第三个控制器,第一行就可以正常工作。如果没有行被注释,则没有任何效果。我觉得我已经很接近了,但不确定我会错在哪里。任何帮助都将不胜感激 以下是工作控制器: 角度模块('ADMApp',[]) .controller('ADMFarViewController',[function(){ va

我使用angularjs 1.5.8基本上模拟了一个包含方程式的excel表格。有三行需要影响两个输出的两个输入。当我为每一行构建一个控制器时,我正在努力编写脚本以包含多个控制器。如果我注释掉脚本中的第二个和第三个控制器,第一行就可以正常工作。如果没有行被注释,则没有任何效果。我觉得我已经很接近了,但不确定我会错在哪里。任何帮助都将不胜感激

以下是工作控制器:

角度模块('ADMApp',[]) .controller('ADMFarViewController',[function(){ var ctrl=this; ctrl.ADMCalc=函数(){ var admfarviewmgheightvar=编号(ctrl.admfarviewmgheightvar | | 0); var ADMFarViewVertPixvar=编号(ctrl.ADMFarViewVertPixvar | | 0); ctrl.ADM_FarViewFarthestViewer_ans=(ADMFarViewImgHeightvar*3438)/ADMFarViewVertPixvar; ctrl.ADM\u farviewRat\u ans=ctrl.ADM\u FarViewFarthestViewer\u ans/ADMFarViewImgHeightvar; } }]);


这是我的建议:

不要每次都重新定义模块

// 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;
        }
}]);
这行代码定义了模块“ADMApp”。由于您在代码中三次使用这一行,因此三次定义同一模块,有效地覆盖了其先前的定义,其中包含先前添加的控制器


将其保存在变量中,或使用
angular.module('ADMApp')
获取对先前定义的模块的引用。

您的速度很快。然而,你应该遵循良好的实践:谢谢。最后一个问题。为什么我的第二排不工作?我尝试注释某些行,让代码返回类似于1+1的值,但第二行的第一个单元格从不返回值。您缺少
视图。
在ng模型中:
angular.module('ADMApp', [])