Поскольку код, указанный в ссылке, похоже, не обновляется, я думаю, вы изменили его, чтобы использовать синтаксис controllerAs
. Таким образом, ваш button
html будет использовать псевдоним vm
при вызове метода контроллера. Предполагая, что вы использовали ng-controller="MyAppController as vm"
Разметка
<button type="button" ng-click="vm.add20Seconds()">Add 20 Seconds</button>
Если бы вы хотели использовать $scope
в своем контроллере, просто измените метод на $scope.add20Seconds
вместо vm.add20Seconds
Обновить
Чтобы получить вызов функции через 20
секунд, вы можете использовать здесь службу $timeout
, которая будет вызывать и указывать обратный вызов, когда упомянутое $timeout
завершено.
Код
vm.add20Seconds = function() {
$scope.$broadcast('timer-add-cd-seconds', 20);
}
var myCallbackAfterTimeout = function(){
//add your code.
}
$scope.$on('timer-add-cd-seconds', function (event, data) {
console.log(data); // 'Some data'
$timeout(myCallbackAfterTimeout, data); //data is nothing but timeout milliseconds
});
Включите зависимость $timeout
в свой контроллер перед его использованием.
person
Pankaj Parkar
schedule
12.09.2015