javascript - Angular 表达式不显示值

标签 javascript angularjs

我在html文件中有以下代码

   <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head >
    <title></title>
    <script src="Scripts/angular.min.js"></script>
    <link href="Styles.css" rel="stylesheet"
</head>
<body ng-app="FirstModule">
    <div ng-controller="myController">
        <table>
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Likes</th>
                    <th>DisLikes</th>
                    <th>Likes/Dislikes</th>
                </tr>
            </thead>
            <tbody>
                <tr ng-repeat="technology in technologies">
                    <td>{{ technology.name}}</td>
                    <td>{{ technology.likes}}</td>
                    <td>{{ technology.dislikes}}</td>
                    <td>
                        <input type="button" value="Like" ng-click="incrementLikes(technology)" />
                         <input type="button" value="Like" ng-click="incrementDisLikes(technology)" />
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
</body>
</html>

而js中的代码是

/// <reference path="angular.min.js" />
var myApp = angular.module("FirstModule", []);
var myController = function ($scope) {



    var technologies = [
                         { name: "C#", likes: 0, dislikes: 0 },
                         { name: "ASP.NET", likes: 0, dislikes: 0 },
                         { name: "SQL", likes: 0, dislikes: 0 },
                         { name: "AngularJS", likes: 0, dislikes: 0 },
    ];

    $scope.technologies = technologies;
    $scope.incrementLikes = function (technology) {
        $scope.incrementLikes++;
    }

    $scope.incrementDisLikes = function (technology) {
        $scope.incrementDisLikes++;
    }
};

myApp.controller("myController", myController);

我收到以下错误错误:$injector:modulerr 模块错误。我是 angularjs 的新手,正在尝试学习事件处理。按钮点击喜欢的次数会增加,不喜欢的次数也会增加。

最佳答案

这是因为你在 HTML 中有这个:

<body ng-app="MyModule">

但您已将您的应用模块定义为:

var myApp = angular.module("FirstModule", []);

您需要更改它们,使它们要么是“MyModule”,要么是“FirstModule”。

更新
所以你已经纠正了模块注入(inject)错误,但是还有这个错误:

$scope.incrementLikes = function (technology) {
    $scope.incrementLikes++;
}

$scope.incrementDisLikes = function (technology) {
    $scope.incrementDisLikes++;
}

应该是:

$scope.incrementLikes = function (technology) {
    technology.likes += 1;
}

$scope.incrementDisLikes = function (technology) {
    technology.dislikes += 1;
}

您可能还想将第二个按钮上的值更改为“不喜欢”而不是“喜欢”。

Working JSFiddle

关联代码,HTML优先:

<div ng-app="FirstModule" ng-controller="myController">
    <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Likes</th>
                <th>DisLikes</th>
                <th>Likes/Dislikes</th>
            </tr>
        </thead>
        <tbody>
            <tr ng-repeat="technology in technologies">
                <td>{{ technology.name}}</td>
                <td>{{ technology.likes}}</td>
                <td>{{ technology.dislikes}}</td>
                <td>
                    <input type="button" value="Like" ng-click="incrementLikes(technology)" />
                    <input type="button" value="Dislike" ng-click="incrementDisLikes(technology)" />
                </td>
            </tr>
        </tbody>
    </table>
</div>

Javascript:

var myApp = angular.module("FirstModule", []);
var myController = function($scope) {
    var technologies = [{
        name: "C#",
        likes: 0,
        dislikes: 0
    }, {
        name: "ASP.NET",
        likes: 0,
        dislikes: 0
    }, {
        name: "SQL",
        likes: 0,
        dislikes: 0
    }, {
        name: "AngularJS",
        likes: 0,
        dislikes: 0
    }, ];

    $scope.technologies = technologies;

    $scope.incrementLikes = function(technology) {
        technology.likes += 1;
    }

    $scope.incrementDisLikes = function(technology) {
        technology.dislikes += 1;
    }
};

myApp.controller("myController", myController);

关于javascript - Angular 表达式不显示值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36165269/

相关文章:

javascript - 什么时候使用 $scope.$apply() 是安全的?

javascript - 如何以编程方式打开和关闭 Angular-UI 弹出窗口

javascript - 在警告框后重定向

javascript - 尝试订阅时出现意外 token

javascript - AngularJS ng-repeat 操作 ID

javascript - 在Js中使用循环查找具有特定值的数据的索引

JavaScript 查找数组中的字符串是否可以在对象中找到

javascript - 如何显示剑道网格​​列菜单的剑道工具提示

javascript - 以小时和分钟显示时间 (00 :00) and round seconds to minutes

javascript - AngularJS错误: [$injector:modulerr] 'ngRoute'