【发布时间】:2017-03-27 06:01:28
【问题描述】:
我有一个 angularjs 错误。我认为这是常见的角度错误。刷新页面后,您将看到编译前的 {{variable}}。
或者您会看到在变量为真后应该显示的 div。这是我最大的问题。我有一个时间选择器。这是禁用的,只有在用户单击按钮后才会弹出。但是当我刷新网站时它会弹出一段时间。 这是两张截图。
这是点击按钮后的时间选择器
这是我的代码:
HTML 部分
<div ng-controller="MyCtrl">
Hello, {{hello}}!
<button ng-click="openTimepicker()">
Open Timepicker
</button>
<div ng-show="uhrzeitanzeigen" class="uhrzeitContainer menu" click-outside="closeThis()" outside-if-not="timepicker">
<div class="uhrzeitwaehlenContainer">
Uhrzeit wählen:
<p>{{stunden}}:{{minuten}}</p>
</div>
<div class="uhrzeitWrapper">
<div class="uhrzeitStunden">
<div class="stunde" ng-class="{'clickedBorder': getStunde($index)}" ng-repeat="i in getNumber(number) track by $index" ng-click="clickStunde($index)"><span>{{$index+1}}</span></div>
</div>
<div class="uhrzeitMinuten">
<div class="minute" ng-class="{'clickedBorder': getMinute($index)}" ng-repeat="i in minutenAnzeige track by $index" ng-click="clickMinute($index)"><span>{{i}}</span></div>
</div>
</div>
<div class="buttonContainer">
<a class="uhrzeitButton" href="">Abbrechen</a>
<a class="uhrzeitButton" href="">Ok</a>
</div>
</div>
</div>
AngularJS 代码
var myApp = angular.module('myApp',[]);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
myApp.controller('MyCtrl', function($scope) {
$scope.hello = "Welcome =>";
$scope.uhrzeitanzeigen = false;
$scope.stunden;
$scope.minuten;
$scope.awesome = true;
$scope.number = 24;
$scope.getNumber = function(num) {
return new Array(num);
}
$scope.openTimepicker = function() {
$scope.uhrzeitanzeigen = !$scope.uhrzeitanzeigen;
}
$scope.closeThis = function() {
$scope.uhrzeitanzeigen = !$scope.uhrzeitanzeigen;
}
/* Methoden für die STUNDEN */
$scope.stundenArray = [];
$scope.clickStunde = function(index) {
for(var i = 0; i < $scope.number; i++) {
$scope.stundenArray[i] = false;
}
$scope.stundenArray[index] = true;
$scope.stunden = index+1;
}
$scope.getStunde = function(index) {
console.log("get stunde");
return $scope.stundenArray[index];
}
/* Methoden für die Minuten */
$scope.minutenArray = [];
$scope.minutenAnzeige = ['00', '15', '30', '45'];
$scope.clickMinute = function(index) {
console.log("click minute " + index);
for(var i = 0; i < 4; i++) {
$scope.minutenArray[i] = false;
}
$scope.minutenArray[index] = true;
$scope.minuten = $scope.minutenAnzeige[index];
}
$scope.testvar = true;
$scope.getMinute = function(index) {
console.log("get minute");
console.log($scope.minutenArray);
console.log($scope.minutenArray[index-1]);
return $scope.minutenArray[index];
}
})
css 代码
.uhrzeitContainer {
background-color: white;
position: absolute;
top: 20%;
left: 25%;
width: 50%;
-webkit-box-shadow: 0px 7px 18px -5px rgba(0,0,0,0.75);
-moz-box-shadow: 0px 7px 18px -5px rgba(0,0,0,0.75);
box-shadow: 0px 7px 18px -5px rgba(0,0,0,0.75);
}
.uhrzeitwaehlenContainer {
background-color: #3F51B5;
color: #E8EAF6;
padding: 5%;
text-align: center;
font-size: 25px;
margin-bottom: 10px;
}
.uhrzeitWrapper {
display:block;
overflow:auto;
}
.uhrzeitStunden {
background-color: white;
color: black;
width: 60%;
float: left;
border-right: 1px solid black;
}
.uhrzeitMinuten {
background-color: white;
color: black;
width: 40%;
float: left;
}
.stunde, .minute {
display: inline-block;
padding: 20px 22px 20px 20px;
text-align: center;
}
.clickedBorder {
background-color: #3F51B5;
color: white;
}
.buttonContainer {
float: right;
}
a.uhrzeitButton {
color: #3F51B5;
text-decoration: none;
margin: 5px 15px;
padding-bottom: 10px;
}
这是jsfiddle with the code。但是jsfiddle没有错误。我不知道是否可以链接我的网站,但there is the code with the bug。 (点击输入框)
我希望有人能帮助我并知道这种错误......
【问题讨论】:
-
尝试添加 ng-cloak,例如:它有效,哈:) 很好很好,我爱你!!!!谢谢。但为什么?疯狂的虫子?我的错?ng-cloak 将隐藏您的 HTML 内容,直到您的控制器完全加载非常感谢 :) 我真的很高兴 :)
标签: javascript angularjs ng-show angularjs-ng-show