首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AngularJS指令$scope未定义

AngularJS指令$scope未定义
EN

Stack Overflow用户
提问于 2016-02-09 03:05:01
回答 5查看 2.9K关注 0票数 1

我有以下指令。当我触发open函数并进入调试器时,我在控制台中收到一条错误消息,显示为Uncaught ReferenceError: $scope is not defined(…)

$scope未定义时,如何调用$scope.open

代码语言:javascript
复制
app.directive('photo', ['$http', 'modal', function($http, modal) {
    return {
        replace: true,
        templateUrl: '/assets/photo.html',
        transclude: false,
        scope: {
            result: '=',
            index: '@'
        },
        controller: ['$scope', '$http', 'modal', function($scope, $http, modal) {
            $scope.prev = $scope.index - 1;
            $scope.open = function() {
                debugger;
            };
        }]
    }
}]);

这是我的DOM:

代码语言:javascript
复制
<div ng-repeat="r in results" photo result="r" index="$index"></div>

如果我在open函数之前插入console.log($scope),然后在该函数中的debugger之前再次插入,我会得到以下结果。左边是在调用open之前,右边是在调用open之后。

EN

回答 5

Stack Overflow用户

发布于 2016-02-09 03:07:29

您在指令定义中注入了$httpmodal (正如您所做的那样),不需要在控制器函数中,只需执行以下操作:

代码语言:javascript
复制
controller: function($scope) {
        $scope.prev = $scope.index - 1;
        $scope.open = function() {
            debugger;
        };
    }
票数 3
EN

Stack Overflow用户

发布于 2016-02-09 03:13:17

尝试在$scope.open中添加使用$scope的语句。当你在$scope.open中时,Chrome可能已经优化了$scope,因为你不使用它。

代码语言:javascript
复制
$scope.open = function() {
  console.log($scope);
  debugger; //now you should see $scope.
};
票数 1
EN

Stack Overflow用户

发布于 2016-02-09 03:07:39

这应该是可行的:

代码语言:javascript
复制
app.directive('photo', ['$http', 'modal', function($http, modal) {
return {
    replace: true,
    templateUrl: '/assets/photo.html',
    transclude: false,
    scope: {
        result: '=',
        index: '@'
    },
    controller: function($scope, $http, modal) {
        $scope.prev = $scope.index - 1;
        $scope.open = function() {
            debugger;
        };
    }
}
}]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35277295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档