2015-05-19 60 views
0

我新的角度,尝试一个元素的内容到控制器的范围结合能够给另一个函数中使用它:结合控制器对象在角

这里的情景我周围的工作:

我想要的<span>元件{{y.facetName}}

<span ng-model="columnFacetname">{{y.facetName}}</span> 

内容被发送到所述控制器的被放置在所述对象$scope.columnFacetname在控制器

这里是我工作的一个片段:

<div ng-repeat="y in x.facetArr|limitTo: limit track by $index "> 
     <div class="list_items panel-body "> 
      <button class="ButtonforAccordion" ng-click="ListClicktnColumnFilterfunc(); onServerSideButtonItemsRequested(ListClicktnColumnFilter, myOrderBy)"> 
       <span>{{$index+1}}</span> 
       <span ng-model="columnFacetname">{{y.facetName}}</span> 
       <span>{{y.facetValue}}</span> 
      </button> 
     </div> 
</div> 

angular.module('mainModule').controller('MainCtrl', function($scope, $http) { 
       $scope.columnFacetname = ""; 
       $scope.ListClicktnColumnFilter = ""; 
       $scope.ListClicktnColumnFilterfunc = function() { 
        $scope.ListClicktnColumnFilter = "\":\'" + $scope.columnFacetname + "\'"; 
       }; 
      } 

的问题是,$scope.ListClicktnColumnFilter不显示在其中的$scope.columnFacetname,这意味着$scope.columnFacetname是没有很好地绑定。

+1

您正在通过ng-repeat循环,因此您如何期望映射多个/不同'y.facetName'值以映射到单个'columnFacetname'变量? – kachhalimbu

+0

您是否尝试删除“ng模型”? – Okazari

+0

是的,我没有,但没有任何改变; – Hassanation

回答

2

在您的NG-点击,而不是调用两个不同的功能

ng-click="ListClicktnColumnFilterfunc(); onServerSideButtonItemsRequested(ListClicktnColumnFilter, myOrderBy)" 

您可以通过将其分配给ListClicktnColumnFilter声明这样

ng-click="columnFacetname = y.facetName; onServerSideButtonItemsRequested(columnFacetname , myOrderBy)" 

您正在尝试这种模式传递给另一个函数你的控制器

通过这样做,你可以达到同样的目的。

我做了一个plunker与样品阵列,

http://embed.plnkr.co/YIwRLWXEOeK8NmYmT6VK/preview

希望这有助于!

+0

这是正确的@Alhuck A,我用这种方式,它的工作.. 这里是我如何使用它 ng- click =“ListClicktnColumnFilterfunc(x.facetOuterName,y.facetName)” 谢谢 – Hassanation