that.WarrantyStatusEditCtrl = function($scope, $compile, $routeParams, $location, $log, apiService, columns, cacheService, commonUtils, DT_OPTION, WARRANTY_HEADER, $rootScope) {
$scope.header = WARRANTY_HEADER.STATUS_EDIT;
$scope.base = base;
var updateObj = {};
var columnDefs = [];
var currentStatus = $routeParams.status.substr(1);
// 隐藏データチエツクコメント、操作
if (currentStatus === "4" || currentStatus === "5") {
columnDefs = [{
"targets": [5],
"visible": false,
"searchable": false
}, {
"targets": [6],
"visible": false,
"searchable": false
}];
}
// Show【FJ納品手続き】Button
if (currentStatus === "3") {
$scope.showScheduleBtn = true;
}
$scope.queryParams = cacheService.cache('tstp.queryParams');
$scope.queryParams.ngFlg = [currentStatus];
$scope.queryParams.tscd = $routeParams.tscd;
$scope.queryParams.tpcd = $routeParams.tpcd;
var jumpFromCtrl = $rootScope.oldRoute.substr($rootScope.oldRoute.length - 12) ==='/edit/fillin';
if (jumpFromCtrl === false) {
$scope.table = $('#dtList').DataTable($.extend({}, DT_OPTION, {
// IF14102: 保証作業費請求状況の確認
ajax: apiService.dtAjax("/getRepairDetailInfo", $scope.queryParams, 'e.queryParams', function(data, info) {
if (info) {
$scope.tsnm = info.tsnm;
$scope.tpnm = info.tpnm;
cacheService.cache("tstp", {
tscd: $routeParams.tscd,
tpcd: $routeParams.tpcd,
tsnm: $scope.tsnm,
tpnm: $scope.tpnm
});
}
$scope.$apply();
cacheService.cache('warrantyCache.data', data);
return data;
}),
columns: columns.warrantyStatusEdit('/warranty'),
columnDefs: columnDefs,
createdRow: function(row, data, index) {
$compile(angular.element(row).contents())($scope);
var selector = $(row).find('select').val(data.ngFlg);
var input = $(row).find('input');
if (updateObj[data.mrNo]) {
data = updateObj[data.mrNo];
var ngFlg = data.ngFlg;
selector.val(ngFlg);
if (ngFlg === "2") {
input.val(data.ngRiyu);
}
}
if (data.ngFlg !== "2") {
input.prop("disabled", true).addClass("readonly");
}
selector.on('change', function() {
var selectVal = selector.val();
if (selectVal === "2") {
input.prop("disabled", false).removeClass("readonly");
} else {
input.prop("disabled", true).addClass("readonly");
input.val("");
data.ngRiyu = "";
}
if (selectVal !== currentStatus || selectVal === "2") {
data.ngFlg = selectVal;
updateObj[data.mrNo] = data;
} else if (selectVal === currentStatus) {
delete updateObj[data.mrNo];
}
groupObj(updateObj);
});
input.on('change', function() {
data.ngRiyu = input.val();
updateObj[data.mrNo] = data;
groupObj(updateObj)
});
var checkBtn = $(".check button", row);
checkBtn.on('click', function() {
cacheService.cache('warrantyCache.warranty', data);
$location.path("/warranty/" + data.mrNo + "/check");
$scope.$apply();
});
$scope.$apply();
}
}));
} else {
readCache();
}
columns: columns.warrantyStatusEdit('/warranty'),//模板
readCache();//读取缓存里面的数据,我用的angularjs的双向绑定可以显示数据,但是工作量比较大模板判断比较多,所有请教下各位大神.