Angularjs 如何将值从主html传递到部分?

Angularjs 如何将值从主html传递到部分?,angularjs,Angularjs,主文件(index.php)包含一些会话信息,如我希望在部分(视图)中使用的用户名。这些是静态html文件,我更喜欢保持它们静态 我可以从partial的控制器调用服务器来获取数据。但是我在主页加载时就有了这些信息,并且在以后加载部分时它们不会改变 如何将这些信息放在主html上,然后在加载分区时传递给分区的控制器 PS:我正在使用AngularJS 1.1.5(最近开始学习AngularJS) 更新:我尝试了一个服务,在主页上设置了一个控制器,并为试图读取的部分设置了控制器。我无法让它工作。内

主文件(index.php)包含一些会话信息,如我希望在部分(视图)中使用的用户名。这些是静态html文件,我更喜欢保持它们静态

我可以从partial的控制器调用服务器来获取数据。但是我在主页加载时就有了这些信息,并且在以后加载部分时它们不会改变

如何将这些信息放在主html上,然后在加载分区时传递给分区的控制器

PS:我正在使用AngularJS 1.1.5(最近开始学习AngularJS)


更新:我尝试了一个服务,在主页上设置了一个控制器,并为试图读取的部分设置了控制器。我无法让它工作。

内联php(包括会话数据)的时代已经一去不复返了

您要做的是创建一个服务对象,为“所有”数据调用您的“服务器端应用程序”,如果需要,您甚至可以将会话绑定到JSON对象

此服务对象需要由其他部分共享,这些部分很可能有自己的控制器。要做到这一点,您需要能够对服务对象执行

以下是我要做的:

在index.php/html/which中,包含一个脚本标记,该标记带有捕获和返回数据的角度服务

<html>
    <head>

        <!-- Include Angular -->

        <script type="text/javascript">

            // By creating this service, we can capture the data from
            // from the server and store it.
            angular.module('myApp').factory('usrData', [function () {

                var data = {};

                data.usrData = <?php echo $usrService->getUserData(); ?>;

                return data;
            }]);
        </script>
    </head>
    <body>
        <!-- Continue with HTML -->
最后,在控制器(比如controller.js)中,您将此
dataServices
服务作为依赖项注入,以通过此API检索和保存数据:

angular.module('myApp').controller('UsrWidget', [

    '$scope', 'dataServices',

    function ctrlrPtHeader($scope, dataServices) {

        "use strict";

        $scope.usrData = dataServices.query('usrData');

        // And now you have the data.

现在,控制器可以直接访问内嵌到HTML中的usrData服务,但我更喜欢使用全局API来管理数据,方法是提供一个漂亮的API脚本并尽可能保持HTML的干净。整个过程的秘密在于将所有数据封装在Angular的环境中,并通过依赖项注入和工厂方法传递信息。

在决定发送初始内容之前,服务器上有一定的处理级别。在某些情况下,会重定向到其他地方。这种处理会产生可以向下推的数据。如果我通过服务器调用获取所有数据,我将重复处理过程。不过,我的前提可能是错误的。@user2429270您也可以看看
$cookieFactory
谢谢Dan。我将研究这两个建议。它是有效的。在包含控制器代码后,我必须放置该脚本。说“没有模块‘myApp’”,如果我以前有过的话。谢谢。太好了,谢谢你让我知道这对你有用。祝你的项目好运!
angular.module('myApp').controller('UsrWidget', [

    '$scope', 'dataServices',

    function ctrlrPtHeader($scope, dataServices) {

        "use strict";

        $scope.usrData = dataServices.query('usrData');

        // And now you have the data.