AngularJS选择数组上的项目

时间:2016-05-19 10:36:46

标签: angularjs json intel intel-xdk

我陷入了一些似乎很容易的事情,但我找不到可行的方法。

我正在使用英特尔XDK在AngularJS中开发混合移动应用程序,我必须显示来自JSON的一系列结果,并允许用户点击其中一个获取更多信息。我需要在页面A上显示列表,在页面B上显示完整的信息。

到目前为止我已经完成了所有但是在B页上显示完整信息,即使我设法获得了点击项目的ID。我拥有的是

Controller.js

.controller('myController', function($scope,$http) {  

//This to get de JSON
$http({ method: 'GET',
    url: '/lib/myData.json'
    }).then(function successCallback(response) {
        $scope.misDatos = response.data;

      }, function errorCallback(response) {
        console.error ("no json data");
      });

//This to get the item clicked
$scope.setMaster = function(section) {

    $scope.selected = section;
    console.log("Item Clicked: " + $scope.selected.id);        

};    

})

将pageA.html

<div class="card" ng-repeat="dato in misDatos" ng-click="setMaster(dato)" >

      <div class="item item-divider">
        {{dato.objetivo}}
      </div>

      <div class="item item-text-wrap">
          <p>{{dato.descripcion}}...</p>

      </div>

      <div class="item item-divider">
       <a href="#/app/playlists/"></i> Más información</a>
      </div>

</div>

PageB.html

 <div class="list card" ng-repeat="dato in misDatos | filter: {id:selected}">

  <div class="item item-avatar">
      <h4>{{dato.objetivo}}</h4>
  </div>

  <div class="item">
    <p>{{dato.descripcion}}</p>
  </div>


</div>

在我的控制台中,我可以看到第A页点击了正确的ID

Item Clicked:3

但我不能让我的“B”页面显示所选结果的数据......

你知道我做错了什么吗?有没有一个很好的教程呢?

提前感谢大家!

2 个答案:

答案 0 :(得分:0)

在B页中,您应该绑定到所选项目的值,如下所示

<div class="list card">

  <div class="item item-avatar">
    <h4>{{selected.objetivo}}</h4>
  </div>

  <div class="item">
   <p>{{selected.descripcion}}</p>
  </div>


</div>

这是因为所选项目的值现已绑定到scope$scope.selected

答案 1 :(得分:0)

最后我做到了。这就是它对我有用的方式;希望它可以帮助某人,bcos我在这个问题上花了整个时间。

正如埃文斯所说,问题在于“页面B”上没有可用的数据,因此解决方案是将信息发送到该页面。我使用了http://excellencenodejsblog.com/angularjs-sharing-data-between-controller/的引用,将工厂放在“app.js”文件中,将控制器放在“controllers.js”文件中。

干杯!