我试图基本上打印出有关新屏幕上某些属性的数据,该屏幕单击主屏幕上的属性名称后,该屏幕重定向到该屏幕。
这是我到目前为止所做的:我击中了我的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 }}
让我知道您有任何问题。