【问题标题】:$routeprovider, resolve with deferred variable$routeprovider,使用延迟变量解析
【发布时间】:2016-01-25 22:14:58
【问题描述】:

我正在尝试仅在解决 dbReadyDeferred 时加载此视图。

dbReadyDeferred 在 common.js 中的其他地方定义(JQuery 可用):

var dbReadyDeferred = $.Deferred();

view1.js:

'use strict';

angular.module('myApp.view1', ['ngRoute'])

.config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('/view1', {
    templateUrl: 'view1/view1.html',
    controller: 'View1Ctrl',
    resolve: dbReadyDeferred.promise
  });
}])

.controller('View1Ctrl', ['$scope', function ($scope) {
...

但是视图没有加载。你能帮忙吗?

【问题讨论】:

    标签: jquery angularjs deferred


    【解决方案1】:

    我不确定你的解决方案出了什么问题,但我为你做了一个工作小提琴:

      $stateProvider.state('home', {
        url: "",
        views: {
            'main': {
                template: '<div>go! {{message}}</div>',
                controller: function ($scope) {
                    $scope.msg = "loaded main!";
                    console.log("ctrl here!");
                }
                }
        },
        resolve: {
          app: function ($q, myService) {
            var deferred = myService.getDeferred();
            return deferred.promise;
          }
    }
    });
    

    https://jsfiddle.net/zn8xdLnw/2/

    也许您的延期没有得到解决?

    【讨论】:

      【解决方案2】:

      好的,这对我有用:

        $routeProvider.when('/view1', {
          templateUrl: 'view1/view1.html',
          controller: 'View1Ctrl',
          resolve: {
               dbState: ['$rootScope', '$q', function($rootScope, $q) {
                     var promise = $q.when(dbReadyDeferred);
                     promise.then(function() {
                         $rootScope.$broadcast("dbStateReady");
                     });
                     return promise;
               }]
          }
        });
      

      【讨论】:

      • 如果你的解决方案是基于我的,你能不能也接受我的?
      • 嗨@Daniel,我想我不能选择两个答案,可以吗?谢谢你的帮助。我选择添加答案是因为我广播了一个事件。但是我们可以编辑您的答案并选择您的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多