根据ng-click在屏幕上的单击元素在新屏幕上显示数据



我试图基本上打印出有关新屏幕上某些属性的数据,该屏幕单击主屏幕上的属性名称后,该屏幕重定向到该屏幕。

这是我到目前为止所做的:我击中了我的API并将所有数据存储在数组propertyDetails中。然后,在正面一部分,我使用ng-repeat =" propertdetials中的prop"进行迭代,并在主屏幕上的JSON API中打印出所有名称。

<div ng-repeat="prop in propertyDetails" class="propertyCard"
     ng-click="getPropDetails(prop)">
    <p class="propSummaryName">{{ prop.name }}</p>
</div>

然后在我的控制器JS中我做过:

$scope.getPropDetails = function(prop){
    $location.path('/propertyDetailScreen');
    console.log(prop.name);
    $scope.propName = prop.name;  
}

现在回到我的propertyDetailscreen上的html

<p> {{ propName }} </p>

我已经完成了路由。当我运行此操作时,发生的事情是,当我单击属性时,它将进入新屏幕。我可以在控制台中看到记录的输出。但是名称未显示在屏幕上。我该如何实现?

当您重定向到新状态时:

$location.path('/propertyDetailScreen');

此状态还有另一个$范围,一个新状态。您需要做的是将您想要的值作为参数传递给新状态。使用$ location.path有一些方法可以实现这一目标。检查以下答案:问题

$scope.getPropDetails = function(prop){
  $location.path('/propertyDetailScreen/'+ prop.name);
}

下一个屏幕

创建一个新的路由文件:

1(在路由文件中

config(['$routeProvider', function ($routeProvider) {
        $routeProvider.when('/propertyDetailScreen/:param1', {
            templateUrl: 'path/propertyDetailScreen.html',
            controller: newController
            });
    }]);

2(在控制器文件中:

首先注入$routeParams作为参数

$scope.name = $routeParams.param1;

3(在html

{{ name }}

让我知道您有任何问题。

最新更新