Angular UI-Router。动态模板URL

时间:2015-05-08 16:48:22

标签: javascript angularjs dynamic

我遇到一个小情况我正在使用Angular和ui-router创建应用程序的前端部分以进行路由。

数据库正在保存链接的路由。网址看起来像(AdminMsgReview?init = 1),它会启动框架的构建。

我试图将该帧放入单页应用程序(因此是有角度的),我尝试对URL进行硬编码,我知道它可以工作并将帧注入视图。

当我尝试动态构建它时,我得到的问题是,在解析完成获取url之前,templateUrl首先加载。

这是route.js

    $urlRouterProvider.otherwise('/login');

$stateProvider

    .state('login', {
        url: '/login',
        templateUrl: function(){
            return 'AdminMsgReview?init=1'
        }
    })

    .state('app', {
        url: '/app/:id/:fnid',
        resolve: {
            fnUrl: function(Toolbar) {
                    return Toolbar.getToolbar();
            }
        },
        controller: ['$rootScope', '$stateParams','fnUrl', function($rootScope, $stateParams, fnUrl){
            var mid = Number($stateParams.id) -1 ;
            var fnid = $stateParams.fnid;
            $rootScope.newUrl = fnUrl;
            $rootScope.url = JSON.stringify($rootScope.newUrl[mid].Function[fnid].URL);
            alert("Url should be = " + $rootScope.url);
        }],
        templateUrl: function($rootScope){
            console.log($rootScope.url);
            alert($rootScope.url);
            return $rootScope.url;
        }
    })

这是我获取数据的工厂:

    var json = "rwd/resources/data/toolbar.json";
return{
    getToolbar : function(){
        return $q.all([
            $http.get(json)
        ]).then(function(results){
            var toolbar = [];
            angular.forEach(results, function(result){
                toolbar = result.data;
            });
            return toolbar.toolbar;
        });
    }
}

0 个答案:

没有答案