我正在使用Angular 1.5.8。我有一個組件內的組件。父組件有一個與ng-show
的div,它決定何時應該出現子組件。待辦事項列表需要30秒纔會出現
父組件...
function ScheduleController() {
var ctrl = this;
ctrl.openTodo = function() {
ctrl.isTodoVisible = true;
}
}
angular.module('myApp').component('userTodoDisplay', {
template: `
<button click="ctrl.$openTodo()"></button>
<div class="my-todo" ng-show="$ctrl.isTodoVisible">
<eb-todo schedule-id="$ctrl.selectedScheduleId" connected-to-project="$ctrl.selectedScheduleConnectedToProject"
permissions="$ctrl.User.Role" close-click="$ctrl.closeTooltip()"></eb-todo>
</div>
`,
controller: [UserTodoDisplayController]
});
下面的子組件需要近30秒出現一次我設置isTodoVisible
到true
。
function TodoController() {
//
}
angular.module('myApp').component('ebTodo', {
bindings: {
scheduleId: '<',
connectedToProject: '<',
statuses: '<',
permissions: '<',
detailsClick: '&',
printClick: '&',
editClick: '&',
shareClick: '&',
deleteClick: '&',
copyClick: '&',
toggleConnectClick: '&',
setStatusClick: '&',
closeClick: '&'
},
template: `
<div>
<button ng-click="$ctrl.closeClick()">Close</button>
<button class="glyphicon glyphicon-th-list" ng-show="$ctrl.permissions.CanViewTask"
ng-click="$ctrl.detailsClick({data: $ctrl.scheduleId})"></button>
<button class="glyphicon glyphicon-print" ng-show="$ctrl.permissions.CanViewTask"
ng-click="$ctrl.printClick({data: $ctrl.scheduleId})"></button>
<button class="glyphicon glyphicon-pencil" ng-show="$ctrl.permissions.CanEditTask"
ng-click="$ctrl.editClick({data: $ctrl.scheduleId})"></button>
<button class="glyphicon glyphicon-envelope" ng-show="$ctrl.permissions.CanEditTask"
ng-click="$ctrl.shareClick({data: $ctrl.scheduleId})"></button>
<button class="glyphicon glyphicon-trash" ng-show="$ctrl.permissions.CanDeleteTask"
ng-click="$ctrl.deleteClick({data: $ctrl.scheduleId});"></button>
<button ng-show="$ctrl.permissions.CanAddTask"
ng-click="$ctrl.copyClick({data: $ctrl.scheduleId})">Copy</button>
<button ng-show="$ctrl.connectedToProject" ng-click="$ctrl.toggleConnectClick({data: $ctrl.scheduleId})">Disconnect</button>
<button ng-hide="$ctrl.connectedToProject" ng-click="$ctrl.toggleConnectFromTooltip({data: $ctrl.scheduleId})">Connect</button>
</div>
`,
controller: [ScheduleTooltipController]
});
我在SO上看到過類似於這個的其他問題,但是這些問題涉及到ngAnimate。我是而不是使用ngAnimate。
我創建了所有其他組件,就像我創建這個一樣。我現在只有在使用ng-show
時纔會顯示組件。爲什麼ebTodo
組件需要約。我在設置isTodoVisible
至true
後出現30秒?
的DevTools可能能夠幫助:1.您可以生成一個配置文件。 2.在瀏覽器工作時,您可以點擊暫停,以便您可以看到堆棧並檢查它正在執行的工作。 – joeytwiddle
@joeytwiddle好主意。試過了。看起來瀏覽器在我錄製時做了很多,但我不確定如何處理這些信息。 – Targaryen
你是否在ng-repeat中渲染它?將'isTodoVisible'設置爲true後,我會嘗試'$ timeout(function(){$ scope。$ apply();})'。 –