绑定到 Angular 中的控制器对象

binding to controller object in Angular

我是 angular 的新手,正在尝试将元素的内容绑定到控制器的作用域中,以便能够在另一个函数中使用它:

这是我正在解决的场景:

我想要 <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 没有很好地绑定。

在你的 ng-click 而不是调用两个不同的函数

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

你可以这样声明

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

您正试图通过将该模型分配给控制器中的 ListClicktnColumnFilter 来将该模型传递给另一个函数

通过这种方式,你可以达到同样的目的。

我用示例数组做了一个 plunker,

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

希望对您有所帮助!