为什么我的程序只是在没有条件的情况下才进入函数

Why is my program only going into a function some of the time when there are no conditionals involved?

本文关键字:情况下 函数 有条件 程序 我的 为什么      更新时间:2023-09-26

我对Angularjs相当陌生,我正在努力自己解决这个问题。我正在查看这里的教程,但我找不到我出错的地方。我有一个这样的模块:

var myMod = angular.module( "modTest", [ 'angular-counter', 'ngDialog' ] );
myMod.factory( "myService", [ "$http", "$log", myService ] )
    .controller( "myCtrl", [ "$myvar", myCtrl] );
console.log("test 1");

然后我有一个控件在代码中定义一个函数,如下所示:

myCtrl = function( $myVar )
{
    console.log("test 2");
}

从我的理解,当我做myMod。控制器应该"运行"我上面描述的函数,并将"test 2"打印到控制台。我让第一个代码块在每个页面上运行,并且"test 1"确实在每个页面上被打印到控制台。

然而,在一些页面上,"测试1"被打印出来,而不是"测试2"。当我使用Chrome开发工具尝试调试这个问题时,我发现我总是在myCtrl = function( $myVar )行上遇到一个断点,但我并不总是进入导致问题的函数。

我以前从来没有遇到过这样的问题,我很困惑为什么会发生这种情况。如果我检查myMod变量后,它被创建和。factory和。controller运行后,我发现,在这两种情况下,它得到正确填充(即它不是空或类似的东西,据我所知)

谁能告诉我,我可以采取什么步骤,试图进入我的ctrl每次。或者,换句话说,如何让"测试2"在每页上打印?

var app = angular.module('modTest', []);
app.service('myService',[])
.controller('MainCtrl', ['$scope', myCtrl]);
function myCtrl($scope) {
  $scope.name = 'World';
}
当您像上面那样声明myCtrl而没有定义myCtrl时,

使用这段代码可以帮助您。