【问题标题】:Access select element in ng-grid访问 ng-grid 中的选择元素
【发布时间】:2013-12-12 21:46:22
【问题描述】:

我有这个网格选项:

$scope.ngOptions = {
        data: 'data',
        columnDefs: [
             {field: 'Status', displayName: "Status", cellTemplate: selectTableTemplate, enableCellEdit: true},
             {cellTemplate: '<button ng-click="update(col, row)">' + Save + '</button>', enableCellEdit: false }]
    };


var selectTableTemplate = "<select ng-model='Status' ng-change='changeToFirst(Status, row)'>" +
                                '<option value="1" class="ng-binding" ng-selected="COL_FIELD == 1">' + 1 + "</option>" +
                                '<option value="2" class="ng-binding" ng-selected="COL_FIELD == 2">' + 2 + "</option>"</select>";

编辑: 如何在ng-change 函数changeToFirst 中获取单击的元素并选择第一个选项?

我这样做:

 row.elm.children().find('select').find('[value=1]').prop('selected', true);

但我确定这不是正确的方式

【问题讨论】:

  • 您能提供更多信息吗?也许我是菜鸟,不明白为什么 ppl 投票赞成这个问题。您是否尝试获取选定元素并同时设置第一个元素,对吗?
  • 顺便说一句,小提琴/Plnker 会很棒
  • @MaximShoustin 编辑了我的问题
  • 我认为您可以编写自定义指令来处理所选项目。
  • @MaximShoustin 我编辑什么意思

标签: javascript jquery angularjs ng-grid angularjs-ng-change


【解决方案1】:

您无需编写处理函数来更新数据中的值。 Angular ng-model 会代替你。假设您的数据对象中有“状态”字段:

$scope.checkStatusChange = function (entity){
      console.log(entity.Status);
};

var selectTableTemplate = '<select ng-model="row.entity.Status" ng-change="checkStatusChange(row.entity)">' +
                                     '<option value="1" ng-selected="row.entity.Status == 1">1</option>' +
                                     '<option value="2" ng-selected="row.entity.Status == 2">2</option>' +
                          '</select>';

引用“row.entity”是指向属于当前行的数据的链接。所以你不需要直接使用“select”元素,数据绑定会做所有的事情。提供函数“checkStatusChange”用于演示目的。

【讨论】:

  • 这给了我需要元素的状态值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-05
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多