自我介绍一下,我叫Tomas,来自荷兰,刚开始热衷于编程。目前我正在使用AngularJS开发一个交互式简历的项目。我想这样做是为了在申请工作时有些东西可以展示出来。因此,一些事情可能比必要的更加困难,只是为了展示我的能力。
好了,回到问题上。我在HTML页面代码中使用AngularJS指令时遇到了问题。
对应的JS文件为:
我正在调用的模板.html文件是:
现在的问题是调用
我已经检查了一些事情,比如Angular库是否已加载(这是情况)。
有人能看出我做错了什么吗?我很迷茫。 附注:我已经在控制器中修改了个人数据,因此打电话/发送电子邮件将没有任何用处 :)
编辑:我在浏览器(Chrome)中进行了F12操作,看到以下错误输出,但似乎无法理解其含义。由于我不能发布超过2个链接,因此在https中添加了星号 :) . angular.js:11655 错误:[$compile:multidir] http://errors.angularjs.org/1.3.15/$compile/multidir?p0=personInfo&p1=personInfo&p2=template&p3=%3Cperson-info%20info%3D%22tomas%22%3E at Error (native) at https*://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:6:417 at Na (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:67:19) at fa (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:62:4) at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:65:406 at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:112:113 at n.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:126:15) at n.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:123:106) at n.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:126:293) at l (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:81:240) (anonymous function) @ angular.js:11655
而Index.html首页的是:
好了,回到问题上。我在HTML页面代码中使用AngularJS指令时遇到了问题。
对应的JS文件为:
/**
* Created by Tomas on 24-1-2016.
*/
var myApp = angular.module("PersonApp",[])
.controller("TomasInformation", ["$scope", function($scope, $routeParams) {
$scope.tomas = {
firstName: "Thomas",
lastName: "Slepers",
middleNames: "Dirk",
dateOfBirth: new Date("1985","03","18"),
placeOfBirth: "Rosmalen",
city: "Maastricht",
address: ["Banniersborg", "176", "B", "6238 VS"],
telephone: "+31 6386492",
email: "t.example@example.com",
nationality: "Dutch"
};
}])
.directive('personInfo', function() {
return {
restrict: "E",
scope: {
info: "="
},
templateUrl: 'JS/personInfo.html'
};
});
我正在调用的模板.html文件是:
<ul>
<li>{{info.firstName}} {{info.lastName}} </li>
<li>{{info.firstName}} {{info.middleNames}}</li>
<li>{{info.dateOfBirth | date}}</li>
<li>{{info.placeOfBirth}}</li>
<li>{{info.city}}</li>
<li>{{info.address[0]}} {{info.address[1]}}{{info.address[2]}}, {{info.address[3]}}</li>
<li>{{info.telephone}}</li>
<li>{{info.email}}</li>
<li>{{info.nationality}}</li>
</ul>
我正在 Index.html 主页面中使用以下 HTML 代码:
<div class="right_information" ng-app="PersonApp" ng-controller="TomasInformation">
<person-info info="tomas"></person-info>
</div>
现在的问题是调用
<person-info>
元素不会给我我的名字等信息,而只会给我网站上的原始代码,例如{{info.firstName}}。我已经检查了一些事情,比如Angular库是否已加载(这是情况)。
有人能看出我做错了什么吗?我很迷茫。 附注:我已经在控制器中修改了个人数据,因此打电话/发送电子邮件将没有任何用处 :)
编辑:我在浏览器(Chrome)中进行了F12操作,看到以下错误输出,但似乎无法理解其含义。由于我不能发布超过2个链接,因此在https中添加了星号 :) . angular.js:11655 错误:[$compile:multidir] http://errors.angularjs.org/1.3.15/$compile/multidir?p0=personInfo&p1=personInfo&p2=template&p3=%3Cperson-info%20info%3D%22tomas%22%3E at Error (native) at https*://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:6:417 at Na (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:67:19) at fa (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:62:4) at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:65:406 at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:112:113 at n.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:126:15) at n.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:123:106) at n.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:126:293) at l (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:81:240) (anonymous function) @ angular.js:11655
而Index.html首页的是:
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script src="JS/app.js"></script>
<link type="text/css" rel="stylesheet" href="stylesheet.css"/>
<title></title>
</head>
我很确定angular.min.js已经被加载了。因为当我移除<person-info>
标签并直接插入模板代码时,它可以正常工作 :/
{{info.firstName}}
,那么这意味着您有一个错误。运行调试器(按 F12),重新加载页面,并告诉我们是否有错误。 - AlainIb