Javascript 对象从一个视图到另一个角度

Javascript 对象从一个视图到另一个角度,javascript,angularjs,Javascript,Angularjs,我有一个对象数组,用于根据用户加载菜单。这个很好用 <li class="sub-menu"> <a href="javascript:;" > <i class="fa fa-th"></i> <span>Data Tables</span> </a> <ul class="sub" ng-repeat="data in myDataSets">

我有一个对象数组,用于根据用户加载菜单。这个很好用

<li class="sub-menu">
    <a href="javascript:;" >
        <i class="fa fa-th"></i>
        <span>Data Tables</span>
    </a>
    <ul class="sub" ng-repeat="data in myDataSets">
        <li><a ng-click="dataset(data)"  >{{ data.get('datasetName') }}</a></li>
    </ul>
</li>
然后,我想在/datapoint视图上加载对象数据集属性。但是,当我在/datapoint视图上加载thme时,我发现DataPoints数组为空,即没有保存任何内容

我在location.path之前有一个console.log$scope.DataPoints,它似乎是正确的

我将DataPoints声明为var DataPoints=[];这与其他工作正常的函数类似

编辑:数据点/数据点的代码


不要绑定$scope,而是绑定$rootScope,因为您需要不同视图中的数据点。但请记住在控制器中提供$rootscope的依赖项

$rootscope.DataPoints=dataset;

希望它能工作。

我想您使用的是ng view,有两个控制器,作用域不同

要点是:您需要将数据从第一个控制器传递到第二个控制器。。。有两个选项可以执行此操作:

使用$rootScope:您可以将您的属性存储在$rootScope中$rootScope是所有作用域的父级,并从第二个控制器访问它。。。这将解决您的问题,但不是语义

创建文档所在的服务。服务是单例的,是一种延迟启动的服务,因此您可以创建一个并使用它在第一个控制器中存储值,然后在第二个控制器中读取值


我更喜欢第二个选项,因为您可以:更加语义化,使用DI,实现服务中的价值逻辑,而不是分散价值。

您使用routes和ngView吗?如果没有,并且您正在导航到另一个URL,那么您应该知道范围数据不存在。您可以在/datapoint点提供控制器的代码。我的意思是在您的第二个视图中。还要注意,两个页面具有相同的控制器。但是在同一个控制器中有不同的功能。创建不同的控制器bcz u有两个视图:-同一个控制器不会帮助您。。。!!但datapoint页面需要从3个不同的阵列加载数据。我每页只能有一个控制器。查看
<div class="row mt">
   <center><h3> Main Page  {{DataPoints.length }}</h3><center>
       <table class="table">
        <tr>
           <th>Name</th>
           <th>Status</th>
           <th>Location</th>
       </tr>  
       <tr ng-repeat="test in DataPoints" >
           <td>{{ test.get('datapointName') }}</td>
           <td>{{ test.get('datapointNotes') }}</td>
       </tr>
</div>
$rootscope.DataPoints=dataset;