![](/img/trans.png)
[英]angular.js:14110 TypeError: Cannot read property 'push' of undefined
[英]Angular.js:10671 TypeError: Cannot read property of undefined
我正在嘗試通過學習課程來學習角度知識,但是我在JavaScript方面沒有太多經驗。 我只是似乎無法讓ng-class正常工作,也看不到為什么我出現標題中提到的錯誤。 這是我的hotels.js文件:
'use strict'
//MODULE
var app = angular.module('hotelsApp', ['ngRoute']);
app.controller('HotelsController', ['$scope', function($scope){
$scope.rooms = mockRooms;
$scope.promoted = function(room) {
if(room.promotion !== null && room.promotion !== undefined) {
return true;
} else {
return false;
}
}
$scope.booking = function(room){
if(room.beds>1){
alert(room.size + " with " + room.beds + " beds, is booked");
}
else
alert(room.size + " with " + room.beds + " bed, is booked");
};
}]);
var mockRooms = [{
"size": "studio",
"beds": 2,
"number": 100,
"kitchen": true,
"price": "100$",
"booked": false,
"promotion" : {
"discount" : "30%",
"message" : "Reserve it today!",
"price" : "70$"
}
},
{ "size": "queen",
"beds": 2,
"number": 101,
"kitchen": true,
"price": "35$",
"booked": true }
];
這是我的index.html:
<!DOCTYPE html>
<html lang="en-us" ng-app="hotelsApp">
<head>
<title>Hotels app</title>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta charset="UTF-8">
<!-- load bootstrap and fontawesome via CDN -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" src="css/main.css" />
<script src="//code.angularjs.org/1.3.0-rc.2/angular.js"></script>
<script src="//code.angularjs.org/1.3.0-rc.2/angular-route.min.js"> </script>
</head>
<body ng-controller="HotelsController">
<div ng-repeat="room in rooms">
<h4>{{ room.size }}</h4>
<p>Beds: {{ room.beds }}</p>
<p>Room number: {{ room.number }}</p>
<p ng-show="room.kitchen">
Kitchen available
</p>
<p ng-hide="room.promotion">
Price: {{ room.price }}
</p>
<p ng-class="{heavy:promoted(room)}" ng-hide="!room.promotion">
Save {{ room.promotion.discount }} {{ room.promotion.message }} Price: {{ room.promotion.price }}
</p>
<button ng-hide="room.booked" ng-click="booking(room)">Book now!</button>
</div>
<script src="app/hotels/hotels.js"></script>
</body>
更正這些行。 您的鏈接全部斷開:
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" src="css/main.css" />
<script src="//code.angularjs.org/1.3.0-rc.2/angular.js"></script>
<script src="//code.angularjs.org/1.3.0-rc.2/angular-route.min.js"> </script>
請在所有CDN的前面加上“ https://”。
使用以下CDN:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.min.css" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular-route.min.js"></script>
這是一個愚蠢的錯誤,如果我更改了main.css,src到href的鏈接,則一切正常。 只是不確定為什么控制台之前會拋出未定義屬性的錯誤,這讓我感到困惑。
<link rel="stylesheet" type="text/css" href="css/main.css" />
老兄,這個問題讓我明白了。 請使用link
標記中的href
替換src
,以加載您的自定義CSS,然后嘗試重新加載頁面。
一切都正確,除了您的CSS沒有加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.