scope() 函数在 AngularJS 控制器中返回未定义

scope() function returning undefined in AngularJS controller

本文关键字:控制器 返回 未定义 AngularJS 函数 scope      更新时间:2023-09-26

我在控制器中有一个函数:

$scope.passValues = function (param1){
    return "foo";
};
console.log($scope.passValues());

这将记录foo,但是:

$scope.passValues = function (param1){
    return param1;
};
console.log($scope.passValues());

这我不明白为什么,因为:

$scope.passValues = function (param1){
        console.log(param1);
        return param1;
     };

将记录robert,当用作passValues(item.firstName)时是同义的。我的问题是第二个示例,我需要函数正确返回 param1 值,以便稍后可以在控制器中使用。

确保将

值传递给函数,否则参数将被undefined

从控制器

$scope.passValues('Robert')

从你的角度来看

<div>
{{ passValues('Robert') }}
</div>

不知道为什么降级这是一个合理的问题,这是答案,我想我被误解或给出了错误的解释。

我必须使用一个服务,在另一个控制器中使用 param1:

第一个控制器:

  $scope.passValues = function (param1){
      myservice.firstName = param1;
 };

服务:

.service('myservice', function() {
})

第二个控制器:

  .controller('detail',
    function ($scope, myservice) {
        $scope.content = myservice.firstName;
    });

然后在模板上,{{内容}} 正确显示 param1(firstName(的值。

当我试图搜索scope()返回未定义的可能原因时,我遇到了这个问题......

就我而言,我有一个带有MyController $scope.reloadItems函数的模块myApp

<div ng-app='myApp' ng-controller='MyController' id="myAngularApp">

我为此加载的 js 文件:

  • angular.min.jsng-infinite-scroll.min.js
  • 我的my_angular_app.js与我的模块的定义
  • some_view.js我在哪里做:

    $('#myAngularApp').scope().reloadItems();
    

现在scope()经常返回undefined模块无法实例化或存在一些错误。在这种情况下,这是因为顺序,我在其中加载了.js文件,因此: $('#myAngularApp').scope()是在my_angular_app.js有机会构建这个模块之前执行的......

。所以万一其他人像我一样来到这里,我希望这对:)有所帮助