im пытается подключить объект менеджера батареи к угловому контроллеру, однако объект контроллера, похоже, не обновляется, когда обещание завершено navigator.getBattery()
. вот что я придумалИспользование диспетчера батареи в угловом js
(function(){
var app=angular.module('appBattery',[]);
app.controller('batteryController',['$window',function($window){
this.bat={};
this.level=this.bat.level;
$window.navigator.getBattery().then(function(battery){
setBattery(battery);
});
function setBattery(battery){
this.bat=battery;
console.log(this.bat);
}
console.log(this.bat);
}]);
})();
с этим HTML
<div ng-app='appBattery'>
<div id="battery-status-bar" ng-controller='batteryController as battery'>
<div class="battery">
<div class="power">
{{battery}}
<div class="level"></div>
</div>
</div>
<div class="percentage">{{battery.bat.level}}</div>
<div class="time">{{battery.bat.chargeTime +':'+battery.bat.dischargeTime}}</div>
</div>
</div>
также можно найти на jsfiddle here
где бы я поставил $ Scope. $ Апи()? и почему он не будет работать как свойство контроллера? – Binvention
для организации, я предпочитаю использовать ее в качестве свойств контроллера, а не в области переменных. – Binvention
У вас есть доступ к свойствам в '$ scope' в вашем представлении. Вам нужно использовать '$ scope. $ Apply()', так как 'bat' устанавливается в асинхронной функции, не являющейся частью цикла нормального цикла вычисления углов. – Arg0n