为什么这个简单的angularjs脚本不起作用?

时间:2016-06-06 12:04:24

标签: angularjs angularjs-components

使用控制器打印数据的简单脚本。 我不知道我在哪里做错了.. 代码由index.html,app.js和mail-list.component.js组成。 mail-list.component用于创建视图和注册控制器的模板。

index.html

<!doctype html>
<html lang="en" ng-app="mailApp">
<head>
<meta charset="utf-8">
<title>Mail System</title>
<link rel="stylesheet" href="css/style.css">
<script src = "angular.min.js"> //angular 2
</script>
<script src="app.js"></script>
<script src="mail-list.component.js"></script>
</head>

<body>
<!--use a custom component to render the mails-->
<mail-list></mail-list>
</body>
</html>

app.js

'use strict';
// Define the 'mailApp' module
angular.module('mailApp', []);

邮件list.component.js

'use strict';
// Register `mailList` component, along with its associated controller and template

    angular.
      module('mailApp').
        component('mailList',{
          template:
        '<span ng-repeat="mail in $ctrl.mails"> '+
        '<input type="checkbox"><b>{{mail.sender }}:<i> {{mail.subject}}</i></b> {{ mail.message}}</span>',

      controller: function MailListController(){
        this.mails=[
          {
            sender: 'Monu',
            subject: 'Regarding Gate',
            message:'start preparing or gate 2017 exam, dont miss this time'
          },{
                sender: 'Shiv',
                subject: 'College Over',
                message:'B.tech is over, now i am a graduate, hurrey!!'
          },{
            sender: 'Monu',
            subject: 'Regarding bag',
            message:'purchase a new bag for me '
          }

        ];
      }

    });

3 个答案:

答案 0 :(得分:3)

您正在使用角度版本1.4.9,而组件仅以角度1.5。*

引入

有关详细信息,请参阅migration guide

答案 1 :(得分:1)

正如Kazimieras所说,角度版本并不支持component()

除了他的指南之外,我还建议Todd Motto使用component polyfill将组件反向移植到Angular 1.3 +。

答案 2 :(得分:-2)

您似乎缺少标记上的ng-app属性。