$scope在angular js应用中是未定义的

$scope is undefined in angular js app

本文关键字:未定义 应用 js scope angular      更新时间:2023-09-26
{% load staticfiles %}
<html ng-app="myBlog">
    <head>
<!--        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
 -->    <script  type="text/javascript" src="{% static 'js/libs/angular.min.js' %}"></script>
<!--        <script  type="text/javascript" src="{% static 'js/modules/app.module.js' %}"></script>
        <script  type="text/javascript" src="{% static 'js/modules/app.config.js' %}"></script> -->
<!--        <script  type="text/javascript" src="{% static 'js/modules/blog-list.module.js' %}"></script>
 -->        <script  type="text/javascript" src="{% static 'js/controllers/blog-list.js' %}"></script>
    </head>
    <body>
        <input type="text" ng-model="name">
        <p>hi , {{name}}</p>
        <div ng-controller="Controller">
            <h1>{{title}}</h1>
            <button ng-click="someTest()">click</button>
        </div>
    </body>
</html>

这里是控制器

'use strict'
var blogList = angular.module('myBlog' , []);
blogList.controller('Controller', ['$scope', function($scope){
        $scope.clicks="";
        console.log("he");
        $scope.title = 'Hi there';
        $scope.clicks = 0;
        console.log($scope)
        $scope.someTest = function(){
            console.log($scope)
            console.log("there")
            $scope.clicks +=1;
            $scope.title = 'Clicked' + clicks;
        };
}]);

当按钮被点击时,它给出错误

angular.min.js:118 ReferenceError: clickis not defined atb。美元范围。someTest (blog-list.js:16) at fn (eval at compile .js(angular.min.js:233),: 4:15 15) at b (angular.min.js:126) atb.$eval (angular.min.js:145) at b.$apply(angular.min.js:146) at HTMLButtonElement。(angular.min.js:37) at HTMLButtonElement.d(angular.min.js: 37)

我怎样才能摆脱错误…提前致谢

您使用的是$scope.title = 'Clicked' + clicks;,您在使用clicks时漏掉了$scope。将其更改为$scope.title = 'Clicked' + $scope.clicks;,因此显示您的错误:

$scope.someTest
$scope.someTest = function(){
     console.log($scope);
     console.log("there");
     $scope.clicks += 1;
     $scope.title = 'Clicked' + $scope.clicks;
};

似乎没有定义变量"clicks"

美元范围。title = 'Clicked' + clicks;<——应该是"$scope"。