0

所以我在 Ionic 中制作了一个应用程序,它包含来自在线管理站点的一些基本动态文本。我已经设法通过 json 将这些数据输入到应用程序中,现在我想在我的应用程序中创建动态链接(或状态)。问题是我有一些物质的清单,每种物质都包含不同的信息。所以现在我有一个这些物质的列表,当我点击一个特定的物质时,我需要它进入一个不同的状态,这将显示这个特定物质的所有信息。

这是我到目前为止的代码:

数据库:

 substances: [
  {
    sID: 'int',
    sTITLE: 'Some title 1',
    sINFO: 'some info 1',
  },
  {
    sID: 'int',
    sTITLE: 'Some title 2',
    sINFO: 'some info 2',
  },
  .....
 ]

应用程序.js

  .state('substances', {
            url: "/substances",
            templateUrl: "templates/substances.html",
            controller: 'SubstancesCtrl'
        })

  .state('substanceDetails', {
            url: "/substanceDetails",
            templateUrl: "templates/substanceDetails.html",
            controller: 'substanceDetailsController'
        })

控制器.js

 .controller('SubstancesCtrl', function ($scope, $stateParams, $rootScope, $http) {


    $http.get('http://someurladdress.php?type=json')
        .success(function (data) {

            $scope.substances = data;

        })
        .error(function (response) {
            $scope.message = "Error";

        });

})

物质.html

 <ul class="list">

        <li ng-repeat="sID in substances" class="item ">
            <a ui-sref="substanceDetails({sID:substances.sID})">
                {{sID.sTITLE}}
            </a>
        </li>

    </ul>
4

1 回答 1

0

这应该在 app.js 中为您工作:

.state('substanceDetails', {
    url: "/substanceDetails/:sID", // added :sID for dynamic ID param
    // url: "/substanceDetails?sID" you could also add sID as a query string
    templateUrl: "templates/substanceDetails.html",
    controller: 'substanceDetailsController'
})

然后,您在 materials.html 中的 ui-sref 会将 sID 附加到 url,您将能够在 .html 中的控制器中访问该 ID $stateParams

在你的 ng-repeat 中你也做错了一些事情。请看一下我为您创建的这个示例,它可以满足您的需求。

于 2016-11-02T19:21:28.940 回答