1

这是我现在的 HTML,它包含所有内容,从 HTML 本身到脚本:

<!doctype html>
<html lang="en-US" ng-app>
    <!--Head-->
    <head>
        <meta charset="UTF-8">
        <title>Lesson 5 - ng-show & ng-hide</title>
        <meta name="viewport" content="width=device-width">
        <style type="text/css">
            * {
                box-sizing: border-box;
            }
            body {
                font: 16px/1.5 sans-serif;
                color: #222;
                margin: 5em;
            }
        </style>
    </head>
    <!--Body-->
    <body ng-controller="information">

        <div>
            <label for="name">
                Name:
                <input type="text" name="username" id="username" placeholder="Your name here please" ng-model="name"/>
            </label>
            <br>
            <label>
                Hide?
                <input type="checkbox" ng-model="checked"/>
            </label>
        </div>

        <div ng-hide="checked">
            Hidden Message here
            <br>
            Welcome {{ name || "user" }}!
        </div>


        <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
        <script type="text/javascript">
            var information = function ($scope) {
                console.log($scope);
            }
        </script>
    </body>
</html>

如您所见,这是一个使用 AngularJS 的简单 HTML 页面。您可以看到 body 由一个名为 的控制器控制information

现在,问题是,一旦您从 body 标签中删除信息,并将其放入第一个div标签中(如ng-controller="information"放入 div 标签而不是 body 标签中),您将看到程序停止工作(如输入你的名字,它不会出现),这是可以预料的,因为另一个 div 超出了控制器的范围。

现在,我想问的是,如何从 HTML 中的另一个控制器访问数据?我尝试了以下方法:

  • {{ information.name || "user" }}<- 第一次尝试
  • {{ information.$scope.name || user }}<- 第二次尝试,因为 {{}} 评估 JS

最后,我无法得到我想要的结果。那么,我如何才能将来自另一个范围的信息访问到div独立于任何范围的标签中呢?

4

1 回答 1

0

做一件事。

创建一个具有 getter setter 属性的服务。当您想从控制器发送数据时,请设置消息或变量或对象。并在要访问它的控制器中使用 get 函数。这样您就可以轻松地通过控制器传递数据。如果你仍然不能让我知道。

于 2013-09-13T09:45:00.153 回答