2015-05-19 66 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