我试图基本上在新屏幕上打印出有关某些属性的数据,然后在主屏幕上单击属性名称后将其重定向到该屏幕。
这是我到目前为止所做的:我点击了api,并将所有数据存储在数组propertyDetails
中。然后在前面,我使用ng-repeat =“ prop in propertyDetials”进行迭代,并在主屏幕上打印出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>
我已经完成了路由。运行此命令时,发生的事情是,当我单击属性时,它将转到新屏幕。我可以在控制台中看到记录的输出。但是名称不会显示在屏幕上。我该如何实现?
答案 0 :(得分:0)
通过以下方式重定向到新状态时:
$location.path('/propertyDetailScreen');
此状态有另一个$ scope,一个新的$ scope。 您需要做的是将所需的值作为参数传递给新状态。 有一些方法可以使用$ location.path来实现。检查以下答案:question
答案 1 :(得分:0)
<article>
<div id="div-01">Here is div-01
<div id="div-02">Here is div-02
<div id="div-03">Here is div-03</div>
</div>
</div>
</article>
下一个屏幕
创建一个新的路由文件:
1)在路由文件中
$scope.getPropDetails = function(prop){
$location.path('/propertyDetailScreen/'+ prop.name);
}
2)在控制器文件中:
首先注入config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/propertyDetailScreen/:param1', {
templateUrl: 'path/propertyDetailScreen.html',
controller: newController
});
}]);
作为参数
$routeParams
3)在HTML中
$scope.name = $routeParams.param1;
让我知道您有任何问题。