使用ng-click

时间:2019-06-28 09:56:25

标签: html angularjs

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

这是我到目前为止所做的:我点击了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>

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

2 个答案:

答案 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;

让我知道您有任何问题。