返回承诺然后不是一个功能

时间:2016-05-21 05:04:23

标签: angularjs ionic-framework

我正在使用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,
        }
      }
  });

2 个答案:

答案 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就像你从数据库查询一些数据并等待结果要么解决要么拒绝