【问题标题】:How to pass variables into $rootScope from backend如何将变量从后端传递到 $rootScope
【发布时间】:2014-03-04 17:13:07
【问题描述】:

我需要在 HTML 代码中将一些变量从后端传递到 Angular 前端。理想情况下,我喜欢将它放在$rootScope 中。但是,当页面加载时,$rootScope 尚未定义。我能做到的唯一方法是:

var myVar = ["aa", "bb"];

然后从$window.myVar获取

那么有没有办法等待直到 $rootScope 由 Angular 定义,然后在 HTML 中将值解析到其中?

【问题讨论】:

    标签: javascript html angularjs rootscope


    【解决方案1】:

    如何定义一个常量并在需要的地方注入它?

    angular.module('yourModule').constant('yourVar', ['aa', 'bb']);

    然后就可以在运行阶段使用了:

    angular.module('yourModule').run(function($rootScope, yourVar) {
        $rootScope.yourVar = yourVar;
    });
    

    【讨论】:

    • 但这仍然假设 yourVar 在解析 HTML 时处于全局范围内,对吧?
    【解决方案2】:

    是的,试试这样的方法

    var myApp = angular.module('App', []);
    
    myApp.run(function($rootScope) {
       $rootScope.myVar = ['aa', 'bb'];
    });
    
    // we launch Angular manually when DOM is ready
    angular.element(document).ready(function() {
       angular.bootstrap(document, ['App']);
    });
    

    【讨论】:

    • 我已经在 app.js 中定义了var myApp = angular.module('App', []);。这行得通吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 2020-10-17
    • 2017-08-26
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多