无法使用angular UI Grid通过$ scope设置文本框值

时间:2016-05-02 18:30:35

标签: angularjs model-view-controller angular-ui-grid

 <div data-ng-controller="OfficeController" class="container">


    <div class="row col-md-12" style="margin:10px;">
        <form name="Office">
            <div class="col-sm-12">


                <label for="Name" class="form-group col-sm-2 control-label">Name</label>
                <div class="col-sm-4">
                    <input type="text" class="form-group col-xs-6" id="Name" placeholder="Name" ng-model="Name" required />
                </div>


                <label for="Org_ID" class="form-group col-sm-2 control-label">Org_ID</label>
                <div class="col-sm-4">
                    <input type="text" class="form-group col-xs-6" id="Org_ID" placeholder="Org_ID" ng-model="Org_ID" required />
                </div>
            </div>
            </form>
            </div>
    </div>

我有两个文本框 向uigrid列添加按钮以获取行数据并调用get

   $scope.gridOptions = {
    data: 'Offices',
    columnDefs: [
      { field: 'OFFICE_ID', displayName: 'OFFICE_ID' },
      { field: 'Name', displayName: 'Name' },
      { field: 'Org_ID', displayName: 'Org_ID' },
               {
                   name: 'ShowScope',
                   cellTemplate: '<button class="btn primary" ng-click="grid.appScope.get(row)">Click Me</button>'
               }
    ],
    filterOptions: { filterText: '', useExternalFilter: false },
    showFilter: true,
    enableFiltering: true,
    showGridFooter: true,
};

alert(res.Name)显示正确的名称,但我无法设置文本框名称值?

 $scope.get = function (row) {
    alert(row.entity.OFFICE_ID);
    var promiseGetSingle = OfficeService.get(row.entity.OFFICE_ID);
    promiseGetSingle.then(function (pl) {
        var res = pl.data;
        alert(res.Name);
        $scope.OFFICE_ID = res.OFFICE_ID;
        $scope.Org_ID = res.Org_ID;
        $scope.Name = res.Name;
        $scope.IsNewRecord = 0;
    },
              function (errorPl) {
                  console.log('failure loading Organization', errorPl);
              });
}

任何想法如何设置文本框值通过范围,任何方法,我想要的是当用户点击行按钮我希望通过从该特定行获取数据来填充字段...在UI Grid Angularjs

1 个答案:

答案 0 :(得分:0)

请尝试如下所示。

 $scope.Name='';//define the variable globally

 $scope.get = function (row) {
    var promiseGetSingle = OfficeService.get(row.entity.OFFICE_ID);
    promiseGetSingle.then(function (pl) {
        $scope.Name = res.Name;
   },
 }