Angularjs 需要将Angular UI网格中的引导下拉列表的值分配给Row.Entity

Angularjs 需要将Angular UI网格中的引导下拉列表的值分配给Row.Entity,angularjs,twitter-bootstrap,angular-ui-grid,Angularjs,Twitter Bootstrap,Angular Ui Grid,我需要在我的ui网格cellTemplate中使用一个引导下拉菜单,并捕获选择,以便在按钮上显示他们的选择。问题是,因为我不能在上使用ng模型,所以当我捕获选择时,网格中的所有下拉列表都会用选择文本更新 下面是一个演示我的问题的例子 这是我的控制器代码: $scope.actions = [ { id: 'action1', name: 'Action 1' }, { id: 'action2', name: 'Action 2' } ]; $scope.sel

我需要在我的ui网格cellTemplate中使用一个引导下拉菜单,并捕获选择,以便在按钮上显示他们的选择。问题是,因为我不能在
  • 上使用
    ng模型
    ,所以当我捕获选择时,网格中的所有下拉列表都会用选择文本更新

    下面是一个演示我的问题的例子

    这是我的控制器代码:

        $scope.actions = [
    
      { id: 'action1', name: 'Action 1' },
      { id: 'action2', name: 'Action 2' }
        ];
        $scope.selectedAction = { id: 'action0', name: 'SelectOne' };
        $scope.setAction = function (action) {
            $scope.selectedAction = action;
            $scope.submitAction();
        };
        $scope.submitAction = function () {
            console.log($scope.selectedAction.id);
        };
      $scope.gridOptions = { rowHeight: 38 };
    
      $scope.gridOptions.columnDefs = [
        { name: 'id', enableCellEdit: false },
        { name: 'name', displayName: 'Name (editable)' },
        { name: 'age', displayName: 'Age' , type: 'number' },
        {
                          field: 'Action', displayName: 'Action',                
                    cellClass: 'center',
          cellTemplate: 'myDropDown.html',
          enableSorting: false
        }
      ];
    
      $http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/500_complex.json')
        .success(function(data) {
          $scope.gridOptions.data = data;
        });
    
    这是我的HTML:

        <div class="ui-grid-cell-contents">
      <div class="btn-group" dropdown dropdown-append-to-body>
        <button type="button" class="btn btn-xs btn-primary dropdown-toggle" dropdown-toggle ng-click="grid.appScoe.submitAction()">
          {{grid.appScope.selectedAction.name}}<span class="caret"></span>
        </button>
    <ul class="dropdown-menu" style="width:230px"><li ng-repeat="action in grid.appScope.actions"><span ng-click="grid.appScope.setAction(action)">{{action.name}}</span></li></ul>
      </div>
    </div>
    
    
    {{grid.appScope.selectedAction.name}
    
    • {{action.name}

    非常感谢您的帮助

    我用叉子叉了你的东西


    当需要将选择绑定到每个网格行的模型时,您将选择绑定到单个范围变量。您的模型需要一个名为Action的列来对应网格配置。为了便于示例,我只添加了一列:

    $http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/500_complex.json')
    .success(function(data) {
      data.map(function(element) {
        element.Action = $scope.selectedAction;
      });
      $scope.gridOptions.data = data;
    });
    
    我修改了setAction()以传入行和所选操作:

    $scope.setAction = function(row, action) {
       row.entity.Action = action;
       $scope.submitAction();
    };
    
    并将单元格模板更改为与控制器更改一起使用:

    <div class="ui-grid-cell-contents">
       <div class="btn-group" dropdown dropdown-append-to-body>
          <button type="button" class="btn btn-xs btn-primary dropdown-toggle" dropdown-toggle ng-click="grid.appScoe.submitAction()">
            {{row.entity.Action.name}}<span class="caret"></span>
          </button>
          <ul class="dropdown-menu" style="width:230px"><li ng-repeat="action in grid.appScope.actions"><span ng-click="grid.appScope.setAction(row, action)">{{action.name}}</span></li></ul>
       </div>
    </div>
    
    
    {{row.entity.Action.name}
    
    • {{action.name}

    我用叉子叉了你的东西


    当需要将选择绑定到每个网格行的模型时,您将选择绑定到单个范围变量。您的模型需要一个名为Action的列来对应网格配置。为了便于示例,我只添加了一列:

    $http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/500_complex.json')
    .success(function(data) {
      data.map(function(element) {
        element.Action = $scope.selectedAction;
      });
      $scope.gridOptions.data = data;
    });
    
    我修改了setAction()以传入行和所选操作:

    $scope.setAction = function(row, action) {
       row.entity.Action = action;
       $scope.submitAction();
    };
    
    并将单元格模板更改为与控制器更改一起使用:

    <div class="ui-grid-cell-contents">
       <div class="btn-group" dropdown dropdown-append-to-body>
          <button type="button" class="btn btn-xs btn-primary dropdown-toggle" dropdown-toggle ng-click="grid.appScoe.submitAction()">
            {{row.entity.Action.name}}<span class="caret"></span>
          </button>
          <ul class="dropdown-menu" style="width:230px"><li ng-repeat="action in grid.appScope.actions"><span ng-click="grid.appScope.setAction(row, action)">{{action.name}}</span></li></ul>
       </div>
    </div>
    
    
    {{row.entity.Action.name}
    
    • {{action.name}

    当需要将选择绑定到每个网格行的模型时,您将选择绑定到单个范围变量。您的模型需要一个名为Action的列来与网格配置相对应。我知道,但正如我的问题所述,由于我无法将模型置于
  • 上,如何绑定它?当您需要将选择绑定到每个网格行的模型时,您将选择绑定到单个范围变量。您的模型需要一个名为Action的列来与您的网格配置相对应,我意识到这一点,但正如我的问题所述,由于我无法在
  • 上放置模型,我如何绑定它?谢谢!我想我错过了一些简单的东西。谢谢!我想我错过了一些简单的东西。