我正在使用Ionic / AngularJs在我的应用中设置默认颜色。
我为此设置了一个返回对象的服务。
我还在我的控制器中设置了承诺,但我得到了#34;当时的ThemeColors.setColor不是一个功能"
控制器
.controller('ColorCtrl', function($scope, $location, ThemeColors) {
$scope.mmAsideColor = ThemeColors.setDefaultColors.asideColor;
$scope.setColor = function(appColor){
ThemeColors.setColor(appColor)
.then(function(data){
$scope.data = data;
console.log(data);
});
}
})
服务
.factory('ThemeColors', function() {
return {
setDefaultColors:{
"backgroundColor": "mm-royal",
"asideColor": "mm-royal",
"buttonColor": "button-royal"
},
setColor: function(appColor){
return {
"asideColor": "The Color is" + appColor
}
//"asideColor": "mm-"+appColor,
}
}
});
答案 0 :(得分:0)
您的工厂需要退回承诺,但您只返回结果,因此您根本不需要,
<script type="text/javascript">
// Need to add a dependency on the 'ui.bootstrap' module to use
// Angular-UI Bootstrap
var app = angular.module('myApp', ['ui.bootstrap']);
app.controller('MyDateController', function ($scope) {
$scope.date = new Date();
$scope.date.setSeconds(0);
});
</script>
<div ng-controller="MyDateController">
<div style="width: 300px">
<input type="text"
class="form-control"
datepicker-popup="yyyy/MM/dd"
ng-disabled="isOpen"
ng-model="date"
is-open="isOpen"
ng-click="isOpen = true" />
</div>
<h2>Time</h2>
<timepicker ng-model="date">
</timepicker>
<hr>
<h2>Currently Selected Date: {{date | date:'medium'}}
</h2>
</div>
答案 1 :(得分:0)
当您创建一个不返回promise调用的工厂服务时。在您的控制器中,您使用的是不需要的then
方法。如果工厂退回承诺,那么您将使用$scope.setColor = function(appColor){
$scope.data = ThemeColors.setColor(appColor);
}
方法
在没有
的情况下尝试此操作{{1}}
Promise就像你从数据库查询一些数据并等待结果要么解决要么拒绝